【IT老齐028】Redis Cluster集群模式
【IT老齐028】Redis Cluster集群模式
- Cluster模式是Redis3.0开始推出
- 采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接
- 官方要求:至少6个节点才可以保证高可用,即3主3从;扩展性强更好做到高可用
- 各个节点会互相通信,采用gossip协议交换节点元数据信息
- 数据分散存储到各个节点上
Redis Cluster 集群 与 Redis Sentinel 的区别
Redis Cluster 集群如何将数据分散存储
为什么是16384?
在Redis 集群中槽分配的元数据会不间断的在Redis集群中分发,以保证所有节点都知晓槽的分配情况
16384=16k,在发送心跳包时使用char进行bitmap压缩后是2k (28(8 bit)1024(1k) = 16K)
通常我们不同部署超过1000个Redis主节点,因此16384就够用了
Redis Cluster 集群构建流程
redis-cluster.conf
# 是否开启集群
cluster-enabled yes
# 生成的node文件,记录集群节点信息,默认为nodes.conf
cluster-config-file nodes.conf
# 节点连接超时时间
cluster-node-timeout 20000
# 集群节点映射端口
cluster-announce-port 6379
#集群节点总线端口,节点之间互相通信,常规端口+1万
cluster-announce-bus-port 16379
EOF
cd /usr/local/redis-stable
./src/redis-server redis-cluster.conf
shell
/src/redis-cli -a 123456 --cluster create
192.168.31.102:6379 192.168.31.103:6379 192.168.31.104:6379
192.168.31.110:6379 192.168.31.111:6379 192.168.31.112:6379
--cluster-replicas 1