最近在專案有用到redis,所以在看redis的原始碼,接下來打算把redis的整體情況都介紹下,會逐漸寫redis原始碼的相關功能,不過,做什麼東西之前,都應該考慮它的優點和缺點,所以,先寫redis的優點和缺點。
redis是乙個key-value儲存系統,資料儲存在記憶體中,它的優點主要如下:
1. 支援多種資料型別
包括set,zset,list,hash,string這五種資料型別,操作非常方便。比如,如果你在做好友系統,檢視自己的好友關係,如果採用其他的key-value系統,則必須把對應的好友拼接成字串,然後在提取好友時,再把value進行解析,而redis則相對簡單,直接支援list的儲存(採用雙向鍊錶或者壓縮鍊錶的儲存方式)。
2. 持久化儲存
作為乙個記憶體資料庫,最擔心的,就是萬一機器宕機,資料會消失掉。redi使用rdb和aof做資料的持久化儲存。主從資料同時,生成rdb檔案,並利用緩衝區新增新的資料更新操作做對應的同步。
3. 豐富的特性
pub/sub,key過期策略,事務,支援多個db等。
4. 效能很好
由於是全記憶體操作,所以讀寫效能很好,可以達到10w/s的頻率。公司有專案使用redis,目前的訪問頻率是80w/s,通過適當的部署,線上執行一切ok。
redis的缺點主要如下:
1. 由於是記憶體資料庫,所以,單台機器,儲存的資料量,跟機器本身的記憶體大小。雖然redis本身有key過期策略,但是還是需要提前預估和節約記憶體。如果記憶體增長過快,需要定期刪除資料。
2. 如果進行完整重同步,由於需要生成rdb檔案,並進行傳輸,會占用主機的cpu,並會消耗現網的頻寬。不過redis2.8版本,已經有部分重同步的功能,但是還是有可能有完整重同步的。比如,新上線的備機。
3. 修改配置檔案,進行重啟,將硬碟中的資料載入進記憶體,時間比較久。在這個過程中,redis不能
提供服務。
原文:
posted @
2017-09-19 14:32
冰雪之源 閱讀(
...)
編輯收藏
關於函式的幾點思考
函式思考 1 函式不一定要有返回值。有返回值型別的函式要return就必須return乙個值,否則報錯,也可以不寫return 會警告不會報錯。空型別函式不能return 乙個值,否則報錯,可以有return,表示函式結束,無警告不報錯。2 函式結束標誌 return 3 是否需要返回值看函式的功能...
關於平台的幾點思考
如何進行平台優化?1 管理層面 資源統一管理 復用,制定規範 規範 文件規範 sop操作規範 業務解耦,完善監控,職責分明,問題追蹤,定期會議總結,機房冗餘 2 業務層面 技術解決效能問題 2.1尋找平台短板 壓力測試定位系統短板 qps tps 響應時延等資料,關注系統的cpu 記憶體 io 網路...
關於VI的幾點思考
根據公司工作安排,開始做安全加固方面的錄影,對linux我是一知半解,在較短的時間中完成任務,確實有些難度,不過好在有很多懂linux或者unix的朋友,不懂的地方可以問他們,個人就使用過程的一些感受談幾點 1 多看幫助檔案,在linux中很多命令都有幫助檔案。學習幫助檔案就基本能夠搞定。2 vi是...