1. Redis集群方案比较
- 哨兵
- 分片
2. Redis分片集群搭建
3. Java操作redis分片集群
- jedis
- lettuce
4. Redis集群原理分析
槽位定位算法
HASH_SLOT = CRC16(key) mod 16384
跳转重定位
Redis集群节点间的通信机制
gossip && gossip通信的10000端口
Redis集群选举原理分析
延迟计算公式:
DELAY = 500ms + random(0 ~ 500ms) + SLAVE_RANK * 1000ms
• SLAVE_RANK表示此slave已经从master复制数据的总量的rank。Rank越小代表已复制的数据越新。这种方式下,持有最新数据的slave将会首先发起选举(理论上)。
网络抖动
网络抖动会导致主从频繁切换 (数据的重新复制)
集群脑裂数据丢失问题
min-slaves-to-write 1
写数据成功最少同步的slave数量
集群是否完整才能对外提供服务
当redis.conf的配置cluster-require-full-coverage
为no时,表示当负责一个插槽的主库下线且没有相应的从库进行故障恢复时,集群仍然可用,如果为yes则集群不可用
Redis集群为什么至少需要三个master节点,并且推荐节点数为奇数?
从节省机器资源角度出发
Redis集群对批量操作命令的支持
mset {user1}:1:name zhuge {user1}:1:age 18