REDIS cluster 操作记录
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
最近使用redis集群时常出故障就把修复的心得记录一下免得许久不用又记不起来了。
redis的redis.conf文件配置之类的就不描述了反正文件是正确的redis目录下就有redis_init_script.sh脚本, 数据如*.rdb,redis_*.conf,appendonly.aof都存于data文件夹中
redis集群初期都是通过脚本 ./redis_init_script.sh start启动的.
现在有个别节点不在集群里了集群连接故障查看命令
redis -a XXX cluster nodes;
简单修复方案
1.启动故障的Redis节点
./redis_init_script.sh start
2.进入Redis bin目录以客户端登录进入集群中某台Redis
./redis-cli -h 192.168.1.101
auth XXX
cluster meet 192.168.1.102
3.exit退出后执行更正命令
./redis-cli --cluster fix 192.168.1.102:6379
如果要求严格一点要做下再平衡
redis-cli --cluster rebalance --cluster-use-empty-masters --cluster-pipeline 1000 --cluster-simulate 192.168.1.102 6379
rebalance host:port # 指定集群的任意一节点进行平衡集群节点slot数量
--cluster-weight <node1=w1...nodeN=wN> # 指定集群节点的权重
--cluster-use-empty-masters # 设置可以让没有分配slot的主节点参与默认不允许
--cluster-timeout <arg> # 设置migrate命令的超时时间
--cluster-simulate # 模拟rebalance操作不会真正执行迁移操作
--cluster-pipeline <arg> # 定义cluster getkeysinslot命令一次取出的key数量默认值为10
--cluster-threshold <arg> # 迁移的slot阈值超过threshold执行rebalance操作
--cluster-replace # 是否直接replace到目标节点
招终极大当然想要以初始状态来恢复工作量要大一些在所有Redis节点
1.停止Redis进程kill 或 ./redis-cli -a XXX shutdown皆可
2.删除data目录下的*.rdb,redis_*.conf,appendonly.aof 三文件
3.重新启动服务./redis_init_script.sh start
最后发起集群命令
./redis-cli -c -a XXX --cluster create 192.168.1.101:port 192.168.1.101:port --cluster-replicas 1
则完成集群创建。