节点取余
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