標籤:redis 缺點 優點
最近在項目有用到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不能
提供服務。
本文出自 “思考沉澱” 部落格,請務必保留此出處http://joezhengjinhong.blog.51cto.com/7791846/1565754
redis的優點和缺點