Redis分片技術(Redis Cluster)

 

  1. redis Cluster介紹

(1) Redis-Cluster是一種服務器Sharding技術,Redis3.0以後版本正式提供支持

(2) 特點:

① Redis_cluster沒有使用一致性hash,而是引入了hash槽的概念。Redis_Cluster中有16384(214次方)hash槽,每個key通過CRC16校驗後對16383取模來決定放置哪個槽。Cluster中的每一個節點負責一部分hash

② 實例

1) 比如集羣中存在三個節點,則可能存在的一種分配如下

  1. 節點A包含0-5500號哈希槽
  2. 節點B包含5501-11000號哈希槽
  3. 節點C包含11001-16384號哈希槽
  4. 其他方案

(1) Redis Sentinel集羣+Keepalived/Haproxy

① 底層是Redis Sentinel集羣,代理着Redis主從,web端通過VIP提供服務。當主節點發生故障,比如機器故障、Redis節點故障或者網絡不可達,Redis之間的切換通過Redis Sentinel內部保障機制,VIP切換通過keepalived保障

② 優點

1) 秒級切換

2) 對應用透明

③ 缺點

1) 維護成本高

2) 存在腦裂

3) Sentinel模式存在短時間服務不可用

(2) Twemproxt

① 多個同構Twemproxy(配置相同)同時工作,根據hash算法,轉發給對用的Redis

② 優點

1) 開發簡單,對應用幾乎透明

2) 歷史悠久,方案成熟

③ 缺點

1) 代理影響性能

2) LVSTwemproxy會有節點性能瓶頸

3) Redis擴容非常麻煩

(3) Codis

① Codi是由豌豆莢開源的產品,涉及衆多組件,其中Zookeeper存放路由表和代理節點元數據、分發Codis-config的命令;Codis-config是集成管理工具,有web界面提供使用;Codis-Proxy是一個兼容Redis協議的無狀態代理;Codis-Redis基於Redis2.8版本二次開發,加入了slot支持,方便遷移數據

 

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