节点取余

https://www.cnblogs.com/yhq-qhh/p/10139952.html

haah(key) % nodes

节点伸缩 : 数据节点关系变化,导致数据迁移

迁移数量和添加节点数量有关 : 建议翻倍扩容

一致性哈希

https://www.cnblogs.com/yhq-qhh/p/10218218.html

节点伸缩 : 只影响邻近节点,依然有数据迁移

翻倍伸缩 : 保证最小迁移数据和负载均衡

原生命令安装

配置信息

cluster-enabled yes                  #开启cluster模式
cluster-config-file nodes-6379.conf  #生成本地cluster的一个配置文件
cluster-node-timeout 15000           #请求超时时间
cluster-require-full-coverage no     #如果集群中有一个节点挂掉,整个集群将不可用 默认yes 这里改成 no,即某节点挂掉,集群依然对外提供服务。

启动服务报错(未分配槽)

127.0.0.1:6379> set yhq qhh
(error) CLUSTERDOWN Hash slot not served

查看cluster信息

[root@localhost redis]# cat nodes-6379.conf 
27078cc3a034bb49727799bf40219b0e7cf0071a :0@0 myself,master - 0 0 0 connected
vars currentEpoch 0 lastVoteEpoch 0
[root@localhost redis]# /usr/local/redis/bin/redis-cli 
127.0.0.1:6379> cluster nodes
27078cc3a034bb49727799bf40219b0e7cf0071a :6379@16379 myself,master - 0 0 0 connected
127.0.0.1:6379> cluster info
cluster_state:fail
cluster_slots_assigned:0
cluster_slots_ok:0
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:1
cluster_size:0
cluster_current_epoch:0
cluster_my_epoch:0
cluster_stats_messages_sent:0
cluster_stats_messages_received:0