目录

00.节点启动、关闭、登录、查看集群信息、配置文件参数、动态改参数

01.创建主节点

02.添加删除节点

03.哈希槽重新分配

04.升级Redis集群中的节点

05.手动故障转移

06.迁移到redis集群

07.集群扩容

08.集群缩容

09.节点挂掉处理

10.扩展


00.节点启动、关闭、登录、查看集群信息、配置文件参数、动态改参数

/data/redis/bin/redis-server /data/redis/conf/redis6379.conf
ps aux|grep redis

/data/redis/bin/redis-cli -a ...... -h 127.0.0.1 -p 6379 SHUTDOWN
ps -ef | grep redis-server | grep -v grep | awk '{print $2}' | xargs kill

/data/redis/bin/redis-cli -a ...... -h 127.0.0.1 -p 6379
CLUSTER nodes
CLUSTER INFO
config get maxmemory/maxclients
config SET maxmemory 6G

01.创建主节点

/data/redis/bin/redis-cli -a ...... --cluster create --cluster-replicas 0 192.168.134.143:6379 192.168.134.143:6380 192.168.134.143:6381

--获取master-id
/data/redis/bin/redis-cli -c -a ...... -h 127.0.0.1 -p 6379 cluster nodes

ip=`ip ad|grep "10.35.2"|awk '{print $2}'|awk -F\/ '{print $1}'`
/data/redis/bin/redis-cli -a ...... --cluster check $ip:6379  --cluster-search-multiple-owners

[root@localhost data]# /data/redis/bin/redis-cli -c -a ...... -h 127.0.0.1 -p 6379 cluster nodes
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
0bc9e58115869b5458a0aaf474b7b9d01ac4dd6a 192.168.134.143:6381@16381 master - 0 1658993413889 3 connected 10923-16383
056ca47dc3945072b9fd28b663f1eb8b569e9cc5 192.168.134.143:6380@16380 master - 0 1658993414897 2 connected 5461-10922
12b09b0ccd152d1267bb94a6ad8d268d9e424cec 192.168.134.143:6379@16379 myself,master - 0 1658993413000 1 connected 0-5460

--为主节点添加从节点
/data/redis/bin/redis-cli -a ...... --cluster add-node 192.168.134.143:6382 192.168.134.143:6379 --cluster-slave --cluster-master-id 12b09b0ccd152d1267bb94a6ad8d268d9e424cec

/data/redis/bin/redis-cli -a ...... --cluster add-node 192.168.134.143:6383 192.168.134.143:6379 --cluster-slave --cluster-master-id 056ca47dc3945072b9fd28b663f1eb8b569e9cc5

/data/redis/bin/redis-cli -a ...... --cluster add-node 192.168.134.143:6384 192.168.134.143:6379 --cluster-slave --cluster-master-id 0bc9e58115869b5458a0aaf474b7b9d01ac4dd6a

--登录
/data/redis/bin/redis-cli -h 127.0.0.1 -p 6379 -a ......

--测试集群的运行状况:
CLUSTER nodes
CLUSTER INFO

02.添加删除节点

添加192.168.134.143:6385到现有集群,新节点的数据路径下确保没有.conf、.aof、.rdb文件才能重启(严格时要先停掉节点该服务,清空甚至删除相关文件,再启动)

/data/redis/bin/redis-cli -a ...... --cluster add-node 192.168.134.143:6385 192.168.134.143:6379

192.168.134.143:6385 的id
6a8c075d50029d7beb67fc71c44d0eac4aa02440

--删除副本节点
/data/redis/bin/redis-cli -a ...... --cluster del-node 192.168.134.143:6379 6a8c075d50029d7beb67fc71c44d0eac4aa02440

要移除主节点,它必须为空。如果主节点不为空,则需要在之前将数据从主节点重新分配到其他主节点。

03.哈希槽重新分配

/data/redis/bin/redis-cli -a ...... --cluster  reshard  192.168.134.143:6379  --cluster-from   b2e5432b19243972c9eeafd5cca39d5fd8a42200  --cluster-to 6a8c075d50029d7beb67fc71c44d0eac4aa02440  --cluster-slots 2731

04.升级Redis集群中的节点

升级副本节点很容易,因为您只需要停止节点并使用更新版本的Redis重新启动。如果有客户机使用副本节点缩放读取,如果givenone不可用,它们应该能够重新连接到不同的副本。

升级masters有点复杂,建议的步骤是:

使用CLUSTER FAILOVER触发主服务器到其中一个副本的手动故障转移。(参见手动故障转移本文件中的章节。)
等待主机变成副本
最后,像对副本一样升级节点。
如果希望主节点成为刚升级的节点,请触发新的手动故障转移,以便将升级的节点变回主节点。
按照此过程,您应该依次升级一个节点,直到所有节点都升级为止。

05.手动故障转移

该命令必须在要进行故障转移master的任意slave节点上执行,执行后master和slave身份自动互换
cluster failover

[root@localhost data]# /data/redis/bin/redis-cli -h 127.0.0.1 -p 6382 -a ......
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6382> 
127.0.0.1:6382> ping
PONG
127.0.0.1:6382> 
127.0.0.1:6382> CLUSTER nodes
d92be4765051dcabe4d9c9a98af7b3614f2c929a 192.168.134.143:6384@16384 slave 0bc9e58115869b5458a0aaf474b7b9d01ac4dd6a 0 1658994296073 3 connected
f8d7ab3de2a8316687d417ae1522077f60ed49de 192.168.134.143:6382@16382 myself,slave 12b09b0ccd152d1267bb94a6ad8d268d9e424cec 0 1658994292000 0 connected
0bc9e58115869b5458a0aaf474b7b9d01ac4dd6a 192.168.134.143:6381@16381 master - 0 1658994295000 3 connected 10923-16383
6e1075d9556d62e7d73cdf2139b242472ce4bf81 192.168.134.143:6383@16383 slave 056ca47dc3945072b9fd28b663f1eb8b569e9cc5 0 1658994295000 2 connected
056ca47dc3945072b9fd28b663f1eb8b569e9cc5 192.168.134.143:6380@16380 master - 0 1658994295067 2 connected 5461-10922
12b09b0ccd152d1267bb94a6ad8d268d9e424cec 192.168.134.143:6379@16379 master - 0 1658994295000 1 connected 0-5460
127.0.0.1:6382> 
127.0.0.1:6382> 
127.0.0.1:6382> cluster failover
OK
127.0.0.1:6382> 
127.0.0.1:6382> CLUSTER nodes
d92be4765051dcabe4d9c9a98af7b3614f2c929a 192.168.134.143:6384@16384 slave 0bc9e58115869b5458a0aaf474b7b9d01ac4dd6a 0 1658994315000 3 connected
f8d7ab3de2a8316687d417ae1522077f60ed49de 192.168.134.143:6382@16382 myself,master - 0 1658994316000 4 connected 0-5460
0bc9e58115869b5458a0aaf474b7b9d01ac4dd6a 192.168.134.143:6381@16381 master - 0 1658994313000 3 connected 10923-16383
6e1075d9556d62e7d73cdf2139b242472ce4bf81 192.168.134.143:6383@16383 slave 056ca47dc3945072b9fd28b663f1eb8b569e9cc5 0 1658994314000 2 connected
056ca47dc3945072b9fd28b663f1eb8b569e9cc5 192.168.134.143:6380@16380 master - 0 1658994316225 2 connected 5461-10922
12b09b0ccd152d1267bb94a6ad8d268d9e424cec 192.168.134.143:6379@16379 slave f8d7ab3de2a8316687d417ae1522077f60ed49de 0 1658994315217 4 connected
127.0.0.1:6382>

06.迁移到redis集群

可以将数据从外部实例导入到 Redis 集群,即使用redis-cli --cluster import命令

redis-cli --cluster import 10.35.2.68:6379 --cluster-from 10.35.2.87:6379 --cluster-replace

说明:外部Redis实例(10.35.2.87:6379)导入到集群中的任意一节点,倒入之后,原来集群的key变为空,导入到新集群的key会自动分片到各个mater节点的slot

--cluster-replace 如果集群(10.35.2.68:6379)中存在外部redis实例(10.35.2.87:6379)的key,则会覆盖掉(10.35.2.68:6379)的value

该命令将正在运行的实例的所有键(从源实例中删除键)移动到指定的预先存在的 Redis 集群。但是请注意,如果您使用 Redis 2.8 实例作为源实例,操作可能会很慢,因为 2.8 没有实现迁移连接缓存,因此您可能希望在执行此类操作之前使用 Redis 3.x 版本重新启动源实例(在进行这个操作之前,将redis的版本升级到Redis 3.x版本)。

07.集群扩容

添加2个节点主6385,从6386

/data/redis/bin/redis-cli -a ...... --cluster add-node 192.168.134.143:6385 192.168.134.143:6379

/data/redis/bin/redis-cli -a ...... --cluster add-node 192.168.134.143:6386 192.168.134.143:6379 --cluster-slave --cluster-master-id 96f15f431b2dff2fde63e94f5b4cabac0aed69ca

--重新分片集群
/data/redis/bin/redis-cli -a ...... --cluster rebalance --cluster-threshold 1 --cluster-use-empty-masters 192.168.134.143:6379

fa14516c9901a8e8d213bfc2c0c80dffc1ecec5b 192.168.134.143:6386@16386 slave 96f15f431b2dff2fde63e94f5b4cabac0aed69ca 0 1658995781000 6 connected
0bc9e58115869b5458a0aaf474b7b9d01ac4dd6a 192.168.134.143:6381@16381 master - 0 1658995781000 3 connected 12288-16383
6e1075d9556d62e7d73cdf2139b242472ce4bf81 192.168.134.143:6383@16383 slave 056ca47dc3945072b9fd28b663f1eb8b569e9cc5 0 1658995780000 2 connected
12b09b0ccd152d1267bb94a6ad8d268d9e424cec 192.168.134.143:6379@16379 myself,master - 0 1658995776000 5 connected 1365-5460
f8d7ab3de2a8316687d417ae1522077f60ed49de 192.168.134.143:6382@16382 slave 12b09b0ccd152d1267bb94a6ad8d268d9e424cec 0 1658995780000 5 connected
96f15f431b2dff2fde63e94f5b4cabac0aed69ca 192.168.134.143:6385@16385 master - 0 1658995783154 6 connected 0-1364 5461-6826 10923-12287
d92be4765051dcabe4d9c9a98af7b3614f2c929a 192.168.134.143:6384@16384 slave 0bc9e58115869b5458a0aaf474b7b9d01ac4dd6a 0 1658995782149 3 connected
056ca47dc3945072b9fd28b663f1eb8b569e9cc5 192.168.134.143:6380@16380 master - 0 1658995781144 2 connected 6827-10922

08.集群缩容

要求:删除master节点A及此slave节点A1
操作步骤:
1)先删除slave A1节点(此操作理论上,应该删除掉A节点所有的slave节点);参考02中的删除节点

2)将A上的slot重新分片到其他的master节点;可参考03哈希槽重新分配,或者07集群扩容中的重新分片集群

操作完成以后可能会有如下报错,没有关系:

Node 127.0.0.1:6381 replied with error:

ERR Please use SETSLOT only with masters.

3)此时查看A节点,A已经变为了接受分片槽节点的master节点

4)删除A节点 ;参考02中的删除节点

09.节点挂掉处理

从节点挂掉:
能重启且数据目录下文件没有丢失就自动加入集群;
若目录下的文件丢失,重启后该节点状态有问题,处理思路:先删除再指定主节点
cluster forget cdc33acca6797723b3fcb3c2386030b0759abe06

/data/redis/bin/redis-cli -a ...... --cluster add-node 192.168.134.143:6386 192.168.134.143:6379 --cluster-slave --cluster-master-id 33efb30b242b28509c0b8f85e791aa6af17d9ef0

主节点挂掉:slave会转为新主
能重启且数据目录下文件没有丢失就自动加入集群;
若目录下的文件丢失,重启后该节点状态有问题,处理思路同上。

若同一主从挂掉:能重启且数据目录下文件没有丢失就自动加入集群;
若目录下的文件丢失,重启后该节点状态有问题,处理思路:
cluster forget feba58aa118956ddebc1dd162276c5e4c0c18d7d
cluster forget cdc33acca6797723b3fcb3c2386030b0759abe06

/data/redis/bin/redis-cli -a ...... --cluster fix 192.168.134.143:6379

/data/redis/bin/redis-cli -a ...... --cluster add-node 192.168.134.143:6385 192.168.134.143:6379

/data/redis/bin/redis-cli -a ...... --cluster add-node 192.168.134.143:6386 192.168.134.143:6379 --cluster-slave --cluster-master-id 96f15f431b2dff2fde63e94f5b4cabac0aed69ca

/data/redis/bin/redis-cli -a ...... --cluster rebalance --cluster-threshold 1 --cluster-use-empty-masters 192.168.134.143:6379

10.扩展

redis-cli --cluster reshard <host>:<port> --cluster-from <node-id> --cluster-to <node-id> --cluster-slots <number of slots> --cluster-yes

--cluster-yes选项指示集群管理器对命令的提示自动回答“是”,允许它以非交互模式运行。请注意,也可以通过设置REDISCLI_CLUSTER_是环境变量

redis集群管理-5.0.14版本相关推荐

  1. Redis Desktop Manager – Redis可视化管理工具、redis图形化管理工具、redis可视化客户端、redis集群管理

    Redis Desktop Manager – 个人认为是目前最好用的Redis可视化管理工具. redis可视化工具.Redis可视化管理工具.redis图形化管理工具.redis可视化客户端.re ...

  2. Redis Desktop Manager – Redis可视化管理工具、redis图形化管理工具、redis可视化客户端、redis集群管理工具

    Redis Desktop Manager – 个人认为是目前最好用的Redis可视化管理工具. redis可视化工具.Redis可视化管理工具.redis图形化管理工具.redis可视化客户端.re ...

  3. Redis集群管理方式

    Redis的有三种集群方式:主从复制,哨兵模式和集群. 主从复制 从服务器连接主服务器,发送SYNC命令: 主服务器接收到SYNC后执行BGSAVE命令生成RDB文件,并使用缓冲区记录此后执行的所有写 ...

  4. Redis集群搭建~Redis-x64-3.2.100版本

    参考文档: https://www.cnblogs.com/yaopengfei/p/12418227.html https://blog.csdn.net/weixin_42694286/artic ...

  5. redis 集群环境搭建-redis集群管理

    集群架构 (1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽. (2)节点的fail是通过集群中超过半数的节点检测失效时才生效. (3)客户端与redi ...

  6. Redis集群管理(二)

    1.进入集群客户端 任意选一个redis节点,进入redis 所在目录 cd /redis 所在目录/src/ ./redis-cli -h 本地节点的ip -p redis的端口号 -a 密码 [r ...

  7. Memcache/Redis集群管理探索与实现:美图开源PaaS平台资源网关

    https://mp.weixin.qq.com/s/HSuzeS2BBf-pLexZOr8c8A 美图开源内部改造的 Twemproxy(Redis/Memcached 缓存代理) https:// ...

  8. Redis 集群规范(中文稿)(MOVED错误码及ASK错误码

    引言? 这个文档是正在开发中的 Redis 集群功能的规范(specification)文档,文档分为两个部分: 第一部分介绍目前已经在 unstable 分支中实现了的那些功能. 第二部分介绍目前仍 ...

  9. Redis 集群规范(MOVED错误码及ASK错误码)

    引言? 这个文档是正在开发中的 Redis 集群功能的规范(specification)文档,文档分为两个部分: 第一部分介绍目前已经在 unstable 分支中实现了的那些功能. 第二部分介绍目前仍 ...

  10. Redis集群架构搭建详解

    一.简介 这其实是一种分布式数据库,就是通过分片的机制储存数据,cluster中的每个节点仅仅储存数据哭的一部分数据,本质上就是实现数据库分片. 这种集群是一种去中心化的集群,也就是说,集群中的每个节 ...

最新文章

  1. 夺得WSDM Cup 2020大赛金牌的这份参赛方案,速来get!
  2. 目标检测--Object Detection via Aspect Ratio and Context Aware
  3. php--理解PHP的依赖注入和laravel的服务容器
  4. Java中四种访问修饰符的区别
  5. 每天学一点Scala之 高阶函数 flatten
  6. 有没有什么好的C++视频教程?
  7. 朋友圈、浏览器分享实现
  8. AIO系列文档(1)----图解ByteBuffer
  9. nginx中root和alias的区别
  10. Helm 3 完整教程(一):Helm 3 简介
  11. 【python】多进程、多线程、序列
  12. 服务器内存太小,伤不起![异常与应用程序池引发的连锁命案]
  13. python好玩的代码-Python有哪些有趣的代码呢,这些代码让
  14. java写颜色识别_Java+Opencv 颜色识别
  15. float数据十六进制表示法,十六进制读取float数据
  16. 关于音频采样率,音频帧率,每次采集多少字节的理解
  17. jQuery轮播图效果+ bxCarousel实现图片滚动切换效果+Mootools Videobox实现视频图片弹出类lightbox效果
  18. saiku 升级备份恢复
  19. 模型建模流程及逻辑回归案例
  20. 【独家解读】谷歌会议app背景模糊和替换技术解析

热门文章

  1. Php中应用透明链路追踪工具molten如何使用?
  2. 逆矩阵的六个注意事项
  3. 蓝桥杯单片机(十二)PCF8591(D/A转换)
  4. HinM_COMPILER_cale计划和实现
  5. IPSec的IKEv1和IKEv2协议
  6. 利用snapper实现archlinux的系统还原
  7. 不规则物体抓取机械手机械臂
  8. Centos6 yum源设置
  9. STM32初始化产生低电平引起的问题
  10. 推荐一个不错的国外html5模板网站