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不能提供服務。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章