redis 集群方案主要有兩類侦厚,一是使用類 codis 的架構(gòu)邑遏,按組劃分穆端,實(shí)例之間互相獨(dú)立忠售。另一套是基于官方的 redis cluster 的方案传惠。
codis 架構(gòu)
codis是一個(gè)豌豆莢團(tuán)隊(duì)開源的使用Go語言編寫的Redis Proxy使用方法和普通的redis沒有任何區(qū)別,設(shè)置好下屬的多個(gè)redis實(shí)例后就可以了稻扬,使用時(shí)在本需要連接redis的地方改為連接codis卦方,它會(huì)以一個(gè)代理的身份接收請求 并使用一致性hash算法,將請求轉(zhuǎn)接到具體redis泰佳,將結(jié)果再返回codis盼砍,和之前比較流行的twitter開源的Twemproxy功能類似。
Codis.png
這套架構(gòu)的特點(diǎn):
- 分片算法:基于 slot hash桶逝她;
- 分片實(shí)例之間相互獨(dú)立浇坐,每組 一個(gè)master 實(shí)例和多個(gè)slave;
- 路由信息存放到第三方存儲(chǔ)組件黔宛,如 zookeeper 或etcd
- 旁路組件探活
codis是目前用的最多的集群方案近刘,codis一個(gè)比較大的優(yōu)點(diǎn)是可以不停機(jī)動(dòng)態(tài)新增或刪除數(shù)據(jù)節(jié)點(diǎn),舊節(jié)點(diǎn)的數(shù)據(jù)也可以自動(dòng)恢復(fù)到新節(jié)點(diǎn)臀晃。
基于官方 redis cluster 的方案
Redis cluster.png
- Redis官網(wǎng)推出觉渴,可線性擴(kuò)展到1000個(gè)節(jié)點(diǎn)
- 無中心架構(gòu)
- 一致性哈希思想
- 客戶端直連redis服務(wù),免去了proxy代理的損耗
具體的redis cluster的搭建方案可以參考官方的搭建方案徽惋。