zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

redis cluster 集群相关

Redis集群 相关 cluster
2023-09-27 14:24:00 时间

1. Redis 集群演进探讨和总结

https://www.cnblogs.com/svenaugustus/p/12938653.html

 

2. Redis哈希槽,对于哈希槽的理解,以及高并发情况下哈希槽不够的情况讲解,热点缓存的解决思路

https://blog.csdn.net/ck784101777/article/details/101367821

 

3.__________________________________redis cluster槽迁移________________________________________________________________

原文链接:https://blog.csdn.net/qq_35688140/article/details/103366945

1.准备一个脚本

shell脚本:
(1)前两个槽表示槽的范围:起始的槽,结束的槽
(2)第三个表示端口号(本次实验在同一机器的不同端口启动多个redis来模拟redis cluster集群)

start=$1
end=$2
port=$3
for slot in `seq ${start} ${end}`
do
echo "slot:${slot}"
redis-cli -p ${port} cluster setslot ${slot} node 3ef8a64275ba5864beaa289d3f69ca3a22005bbb
done
 


2. 分为三步
(1)cluster setslot <slot> migrating <node_id> :将本节点的槽 slot 迁移到 node_id 指定的节点中。
(2)cluster setslot <slot> importing <node_id> :从 node_id 指定的节点中导入槽 slot 到本节点。
(3)cluster setslot < slot > node <node_id> :将槽 slot 指派给 node_id 指定的节点,如果槽已经指派给
可能涉及的其他命令:
(4)cluster setslot <slot> stable :取消对槽 slot 的导入( import)或者迁移( migrate)

3. 具体步骤
我们要将:8001端口的5462-10922槽转移到8002上
查看node的id:redis-cli -p 8000 cluster nodes

 

 

 

3.1 对8001端口的redis执行迁出槽命令
将脚本中的redis命令行修改为:

redis-cli -p ${port} cluster setslot ${slot} migrating 3ef8a64275ba5864beaa289d3f69ca3a22005bbb

执行脚本:sh addslots.sh 5462 10922 8001

3.2 对8002端口的redis执行迁入槽命令
将脚本中的redis命令行修改为:

redis-cli -p ${port} cluster setslot ${slot} importing b27caf1a99d4f4e4ee76010a68588ac491a1b3ef

执行脚本:sh addslots.sh 5462 10922 8002

3.3 此时还没有通知8001端口和8002端口开始执行迁移,可以取消
cluster setslot <slot> stable :取消对槽 slot 的导入( import)或者迁移( migrate)

3.4 开始迁移
将脚本中的redis命令修改

redis-cli -p ${port} cluster setslot ${slot} node 3ef8a64275ba5864beaa289d3f69ca3a22005bbb

执行脚本:

sh addslots.sh 5462 10922 8001
sh addslots.sh 5462 10922 8002
 
3.5 迁移完成
(下面redis主从关系可能还未定义完成)

 

 

____________________________________________________________________________________________________________________________________________________________________________________________________