1. Redis Cluster簡介
1.1 什么是集群模式?
集群是指:
- 多個主從(sharding-分片)模式的組合;
- 更大的容量,更好的性能;
- 更高的可用性;
常見的集群管理模式:
- 中心化
- 去中心化

1.2 官方文檔
官方原理: https://redis.io/topics/cluster-spec
官方使用: https://redis.io/topics/cluster-tutorial
1.3 Redis Cluster 特點
- 去中心化,Gossip提供通信基礎集群模式
- 客戶端和后端直連交互
- 集群自動分片路由
- 集群自動故障恢復
- 集群支持彈性伸縮
1.4 Redis Cluster 優(yōu)缺點

2. Redis Cluster 實現(xiàn)機制
2.1 Redis Cluster 相關配置
- cluster-enabled yes
開啟Redis Cluster模式- cluster-config-file nodes-6379.conf
cluster node節(jié)點元信息配置文件,路徑是dir- cluster-node-timeout 15000
多少毫秒連接不上后,判斷該node狀態(tài)為不可用- cluster-replica-validity-factor 10
當slave和master失聯(lián)時間超過(node-timeout * replica-validity-factor) + repl-ping-replica-period + node-timeout時間時,就不會自動failover,因為此時slave上的數(shù)據(jù)可能會比較舊了。這種情況一般發(fā)生在主從出現(xiàn)分區(qū)的時候- cluster-migration-barrier 1
當集群中出現(xiàn)了只有主一個副本的分片時,其他主從分片如果有大于cluster-migration-barrier分片數(shù)時,可以分配出一個從副本給孤立的主。提升整體集群的高可用- cluster-require-full-coverage yes
控制集群高可用,設置為yes,則允許在分片不可用或者集群路由未完全分配的情況下,其他的分片仍然提供服務- cluster-replica-no-failover no
控制是否自動failover,在主掛掉的情況下
2.2 Redis Cluster集群路由
分片Sharding:
16384個Slots
(不多不少,這里面其實是和gossip協(xié)議的通信成本和集群狀態(tài)收斂有關)-
集群路由過程
2.3 Redis Cluster節(jié)點探活

2.4 故障恢復
-
自動failover
-
手動failover
-
Force failover
-
Takeover failover
3. 更多內容,可以查看
如果覺得有收獲,歡迎點贊和評論,更多知識,請點擊關注查看我的主頁信息哦~




