大家好,今天分享Redis集群master节点挂掉之后的处理方式

我们前面做的主从复制


是这样的一个结构


要改成这样

将6303的主节点接到6302

127.0.0.1:6303> SLAVEOF 127.0.0.1 6302
OK
127.0.0.1:6303>

在6303上看,它的主节点变成了6302

127.0.0.1:6303> INFO replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6302
master_link_status:up
master_last_io_seconds_ago:6
master_sync_in_progress:0
slave_repl_offset:4397
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:d41907987e0a9dd87fa62e7f54b6d2ce27740621
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:4397
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:4397

在原先的主节点上看,他只有6302这个从节点了

127.0.0.1:6379> INFO replication
# Replication
role:master
connected_slaves:1
slave0:ip=127.0.0.1,port=6302,state=online,offset=4523,lag=0
master_replid:d41907987e0a9dd87fa62e7f54b6d2ce27740621
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:4523
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:4523
127.0.0.1:6379>

我们发现6302 还是一个从节点(它是不可以写入数据的)

127.0.0.1:6302> INFO replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6379
master_link_status:up
master_last_io_seconds_ago:7
master_sync_in_progress:0
slave_repl_offset:4747
slave_priority:100
slave_read_only:1
connected_slaves:1
slave0:ip=127.0.0.1,port=6303,state=online,offset=4747,lag=1
master_replid:d41907987e0a9dd87fa62e7f54b6d2ce27740621
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:4747
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1626
repl_backlog_histlen:3122

在原先的主节点上写点数据

127.0.0.1:6379> set gw jiao
OK

在6302上获取数据

127.0.0.1:6302> get gw
"jiao"
127.0.0.1:6302>

在6303上获取数据

127.0.0.1:6303> get gw
"jiao"

这样也可以完成主从复制

断掉主节点

127.0.0.1:6379> SHUTDOWN
not connected> exit
[root@localhost bin]#

这时我们已经没有主节点了

这时,在从节点上使用这个命令

可以让这个从节点变成主节点

127.0.0.1:6302> SLAVEOF no one
OK
127.0.0.1:6302>

6302这个从节点已经变成了主节点

127.0.0.1:6302> INFO replication
# Replication
role:master
connected_slaves:1
slave0:ip=127.0.0.1,port=6303,state=online,offset=5669,lag=0    //注意这一行(6303成为了6302的从节点)
master_replid:fe8fffc61e1c21c0892bffb64d51c8224ad5ec93
master_replid2:d41907987e0a9dd87fa62e7f54b6d2ce27740621
master_repl_offset:5669
second_repl_offset:5432
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1626
repl_backlog_histlen:4044
127.0.0.1:6302>

之后,我们使用命令行的方式让其它的从节点(除了原先的主节点以外)连接上这个主节点

连接原先的主节点(即: 6379)

[root@localhost bin]# redis-server redistest/redis01.conf
[root@localhost bin]# redis-cli -p 6379
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>

它现在还是主节点(但是它的下面已经从节点了

因为6302已经取代了它主节点(就是老大的意思)的地位

它再次开启也没有用了

127.0.0.1:6379> INFO replication
# Replication
role:master
connected_slaves:0
master_replid:d4f9a27b0db5279fa847cc95488bf9a9fbe04045
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
127.0.0.1:6379>

如果想让原先的主节点再度成为主节点(master),在命令行上加上去就可以了

这样做

127.0.0.1:6302> SLAVEOF 127.0.0.1 6379
OK
127.0.0.1:6302>

这样做

127.0.0.1:6303> SLAVEOF 127.0.0.1 6379
OK
127.0.0.1:6303>

这样它的主节点地位就又回来了(即:6379 又变成了master)

127.0.0.1:6379> INFO replication
# Replication
role:master
connected_slaves:2
slave0:ip=127.0.0.1,port=6302,state=online,offset=98,lag=0
slave1:ip=127.0.0.1,port=6303,state=online,offset=98,lag=1
master_replid:5c4f2e117c26c9a1c1d1310e327f166dc7a88c2e
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:98
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:98
127.0.0.1:6379>

好了,有关于Redis集群master节点挂掉之后的处理方式就到这里了,谢谢大家

Redis集群master节点挂掉之后的处理方式相关推荐

  1. redis集群添加节点报错Either the node already knows other nodes (check with CLUSTER NODES) or contains some k

    [README] redis集群添加节点报错 [ERR] Node 192.168.163.202:6380 is not empty. Either the node already knows o ...

  2. Redis集群添加节点

    Redis集群添加节点 1:首先把需要添加的节点启动 cd /usr/local/cluster/ mkdir 7006 cp /usr/local/cluster/redis.conf  /usr/ ...

  3. shell脚本遍历redis集群所有节点日志,并入库到hadoop中,进行数据分析

    shell脚本遍历redis集群所有节点,并入库到hadoop中的数据库中,进行数据分析,在此留存,以备他用 [AAAAAAnilRedis@FXYY-FS-redis2 ~]$ cat /home/ ...

  4. springboot整合redis集群master宕机后连接超时

    前提: #        本文是在确保redis集群配置正确的情况下,连接超时的解决方案. 项目登录认证使用的是sa-token(这个不重要,主要说的是springboot和redis集群),最近应甲 ...

  5. 通过cluster reshard实现Redis集群缩减节点实战【详细步骤】

    今年由于新冠疫情的影响,可能很多同学都被公司要求压缩服务器成本.这两天,公司领导把小眼睛瞟到笔者开发环境里那个可怜的redis集群上.好吧,那么我们就来操作一下缩减redis集群. 查看cluster ...

  6. redis集群增加节点和删除节点、或者reshard时报 migrating 错误

    目录 redis安装和创建集群看这里 redis安装 redis集群 Redis集群节点增加 添加节点 节点的 redis.conf  配置 端口 6307 启动新的redis实例 2.添加节点到集群 ...

  7. redis 集群master slave飘逸,造成订阅消息失败问题解决

    一.问题 之前的代码,通过redis消息订阅发布功能,来获取最新的设备信息,运行一段时间后发现,从某个点开始,无法订阅新发布的消息 二.调研 1.在本地debug模式启动功能,连接到redis集群订阅 ...

  8. Redis高可用架构-Redis集群,一文get三种方式

    前言 容量不够,redis如何进行扩容? 并发写操作, redis如何分摊? 另外,主从模式,薪火相传模式,主机宕机,导致ip地址发生变化,应用程序中配置需要修改对应的主机地址.端口等信息. 之前通过 ...

  9. 查看Redis集群所有节点内存工具

    指定集群中任意一个节点,查看集群中所有节点当前已用物理内存.配置的最大物理内存和系统物理内存. ​ ​源码(可从https://github.com/eyjian/redis-tools下载): #! ...

最新文章

  1. 分布式通信框架 - rmi
  2. mac os10.11上使用proxychains
  3. Linux产生随机数的几种常见方法
  4. 学生用计算机怎么用视频,19.使用ZOOM作为上课视频、语音和屏幕分享工具,具体对学生的电脑和宽带有什么软件和硬件要求?...
  5. 网络通信程序做个瞬间的扫描判断
  6. LeetCode 605 种花问题
  7. Google Chrome调试js代码
  8. 模拟退火算法从原理到实战【基础篇】
  9. js动态加载css文件和js文件的方法
  10. Kotlin — 协程简介与使用
  11. python时间处理,datetime中的strftime/strptime
  12. visual studio 2012 密钥
  13. 数据结构算法——1006. 线性链表的插入与删除
  14. 用html制作ps,ps制作图片的步骤
  15. 项目管理四要素是什么?
  16. python爬虫大作业
  17. gtx660 linux驱动下载,Ubuntu 16.04安装GTX660显卡驱动——解决谷歌浏览器卡死桌面的问题...
  18. mysql表别名不加as_数据库别名AS区别
  19. Axway API Management以及移动互联技术实现价值型
  20. 电子科技大学-高级计算机系统结构

热门文章

  1. iOS Quartz2D使用教程之【自定义控件】(案例:横屏电子签名)
  2. 公式文字识别神器---mathpix
  3. php hyper-v,win10自带播放器 rmvb_win 配置php_win 10 hyper-v
  4. 开源论坛软件Flarum的安装
  5. php7安装flarum,如何在Ubuntu 18.04上安装Flarum社区软件
  6. 京东店铺人群标签如何优化?
  7. TeeChart.v8.01安装
  8. 自考笔记-创业学01(小白编写)
  9. Hacknet 游戏笔记记录
  10. AD(altium designer)15原理图与PCB设计教程(一)——封装总结