分片集群

1.1 分片集群解决海量数据高并发写的问题(无须哨兵了)
69d003d03582f6ad4326c3ea99f89a4a56fe47d7

2.散列插槽
0d0d186da51626424dfe834e619799bc7462307d

2.1 为什么要有散列插槽?
若新增机器,数据如何分配?

2.1.1 hash(key)%节点数 ? 如果节点数改变,则要全部key进行重新计算和迁移
fa6479995417b904b97e4e3d61851e8f85f823b5

2.1.2 加一个中间层–>
5a6ea4ff6f962a1ed0aebef2cce06545d9ca9bd8

两层映射
hashval->slot
Slot->master

d7d5a9c74616dc397d646cfcc277286190365bd5

2.1.3 总结
bd9e1f8f0f79bdfce391d00bcd9f4c19784747ae
哈希标签, 增加约束
1220b11c47fca7196eb975f50667344cd0243ecb

3.集群伸缩

3.1 添加节点
c8b1def8555e3aa10d82936a39f6fd8a75c1c644

添加节点并且将hashval分配到某个节点, 需要重新分配slot
6e2f14c2beb1a7af53b52fd8ee077c5505ac06b7

3.1.1 新增节点
Init->acknowledge->reshard

58dd05d8f775f6606b75ccb7b8a38e3b29a8b65c

691f664a3afcb2491c698f9b09d2a9d7989b502e

3.1.2 删除节点
Reshard->remove
b865f0a86f817c49258b07dc1c800636c34a9ac5

3.1.3 动态迁移
直接reshard

4.故障转移
4.1 主从替换
只需要进入redis-cli的某个节点,执行cluster failover即可进行主从替换
4880368be8d0f34dd73769f8c51f24f0535c303f

5.redistemplate访问分片集群
和哨兵的一致
b9f1ca9affd7df92ef99e648e18a2676be164a94