Redis高阶之容错切换的实现

 更新时间:2025年02月27日 11:28:13   作者:元气满满的热码式  
本文主要介绍了Redis高阶之容错切换的实现,当一台主节点宕机后,从节点会自动接管成为新的主节点,当原主节点恢复后,它不会自动成为主节点,需要通过手动操作将其重新设置为从节点,感兴趣的可以了解一下

当一台主机master宕掉之后,他的从机会取代主机么?

查看集群状态

127.0.0.1:6385> cluster nodes
c8ff33e8da5fd8ef821c65974dda304d2e3327f9 192.168.58.129:6382@16382 slave f6b1fd5e58df90782f602b484c2011d52fc3482d 0 1733220836918 1 connected
6656947825a5aed22e4ce1818c1e743739219374 192.168.58.212:6386@16386 slave 437c0ffe1015fc8c7049cfeb0af05fee17e4b0a1 0 1733220835000 5 connected
73b5567a02ee9f958f00324bf25bee5ce8eb23bc 192.168.58.130:6384@16384 slave e1dafb251016aeaa59edf64c4f7bb3d4639f560a 0 1733220834890 3 connected
f6b1fd5e58df90782f602b484c2011d52fc3482d 192.168.58.212:6385@16385 myself,master - 0 0 1 connected 0-5460
437c0ffe1015fc8c7049cfeb0af05fee17e4b0a1 192.168.58.130:6383@16383 master - 0 1733220835395 5 connected 10923-16383
e1dafb251016aeaa59edf64c4f7bb3d4639f560a 192.168.58.129:6381@16381 master - 0 1733220836410 3 connected 5461-10922

停掉主机6385

127.0.0.1:6385> SHUTDOWN

(10.02s)
not connected> 
not connected> 
not connected> 
not connected> 

使用redis-cli命令进入redis再次查看集群状态

127.0.0.1:6382> info replication
# Replication
role:master
connected_slaves:0
master_failover_state:no-failover
master_replid:f292ca63e04db6e7717cc5067f408bf733963bb2
master_replid2:6ab6cdfeb1902aaa71279434c6b2c0e46d28a7f4
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:6382> cluster nodes
437c0ffe1015fc8c7049cfeb0af05fee17e4b0a1 192.168.58.130:6383@16383 master - 0 1733221855390 5 connected 10923-16383
f6b1fd5e58df90782f602b484c2011d52fc3482d 192.168.58.212:6385@16385 master,fail - 1733221087102 1733221084545 1 disconnected
6656947825a5aed22e4ce1818c1e743739219374 192.168.58.212:6386@16386 slave 437c0ffe1015fc8c7049cfeb0af05fee17e4b0a1 0 1733221854869 5 connected
73b5567a02ee9f958f00324bf25bee5ce8eb23bc 192.168.58.130:6384@16384 slave e1dafb251016aeaa59edf64c4f7bb3d4639f560a 0 1733221853318 3 connected
e1dafb251016aeaa59edf64c4f7bb3d4639f560a 192.168.58.129:6381@16381 master - 0 1733221855000 3 connected 5461-10922
c8ff33e8da5fd8ef821c65974dda304d2e3327f9 192.168.58.129:6382@16382 myself,master - 0 1733221854000 7 connected 0-5460

6382成功上位成为主机

那么6385原主机恢复之后,是否会重新上位?

不会!

当前的集群状态:

127.0.0.1:6382> cluster nodes
437c0ffe1015fc8c7049cfeb0af05fee17e4b0a1 192.168.58.130:6383@16383 master - 0 1733221855390 5 connected 10923-16383
f6b1fd5e58df90782f602b484c2011d52fc3482d 192.168.58.212:6385@16385 master,fail - 1733221087102 1733221084545 1 disconnected
6656947825a5aed22e4ce1818c1e743739219374 192.168.58.212:6386@16386 slave 437c0ffe1015fc8c7049cfeb0af05fee17e4b0a1 0 1733221854869 5 connected
73b5567a02ee9f958f00324bf25bee5ce8eb23bc 192.168.58.130:6384@16384 slave e1dafb251016aeaa59edf64c4f7bb3d4639f560a 0 1733221853318 3 connected
e1dafb251016aeaa59edf64c4f7bb3d4639f560a 192.168.58.129:6381@16381 master - 0 1733221855000 3 connected 5461-10922
c8ff33e8da5fd8ef821c65974dda304d2e3327f9 192.168.58.129:6382@16382 myself,master - 0 1733221854000 7 connected 0-5460

重新指定6385配置文件启动服务: 

127.0.0.1:6385> cluster nodes
0a820807a70885c1d87d141824d3869dcf2418ee 192.168.58.130:6383@16383 master - 0 1733300452328 3 connected 5461-10922
91cf395e8f04a5df1aeec4602dd38b3e4a708d55 192.168.58.130:6384@16384 slave ba40235fdad71fb36c3bf165ea51055825d453c2 0 1733300451285 1 connected
be191621d4aa881d864a113c385d58b751753392 192.168.58.212:6385@16385 myself,slave fedf4b13be2122f44dde749a08c4b943582b3566 0 0 7 connected
30e5bdec200a671e4de666551d4489f0035235ba 192.168.58.212:6386@16386 slave 0a820807a70885c1d87d141824d3869dcf2418ee 0 1733300452892 3 connected
ba40235fdad71fb36c3bf165ea51055825d453c2 192.168.58.129:6381@16381 master - 0 1733300453572 1 connected 0-5460
fedf4b13be2122f44dde749a08c4b943582b3566 192.168.58.129:6382@16382 master - 0 1733300452659 7 connected 10923-16383

节点主从调整

当前集群状态6385为从,6382为主

127.0.0.1:6385> cluster nodes
0a820807a70885c1d87d141824d3869dcf2418ee 192.168.58.130:6383@16383 master - 0 1733301081028 3 connected 5461-10922
91cf395e8f04a5df1aeec4602dd38b3e4a708d55 192.168.58.130:6384@16384 slave ba40235fdad71fb36c3bf165ea51055825d453c2 0 1733301082183 1 connected
be191621d4aa881d864a113c385d58b751753392 192.168.58.212:6385@16385 myself,slave fedf4b13be2122f44dde749a08c4b943582b3566 0 0 7 connected
30e5bdec200a671e4de666551d4489f0035235ba 192.168.58.212:6386@16386 slave 0a820807a70885c1d87d141824d3869dcf2418ee 0 1733301082954 3 connected
ba40235fdad71fb36c3bf165ea51055825d453c2 192.168.58.129:6381@16381 master - 0 1733301082057 1 connected 0-5460
fedf4b13be2122f44dde749a08c4b943582b3566 192.168.58.129:6382@16382 master - 0 1733301081260 7 connected 10923-16383

执行命令cluster favlover ,主从节点调整,6385为主,6382为从

127.0.0.1:6385> cluster nodes
0a820807a70885c1d87d141824d3869dcf2418ee 192.168.58.130:6383@16383 master - 0 1733301262000 3 connected 5461-10922
91cf395e8f04a5df1aeec4602dd38b3e4a708d55 192.168.58.130:6384@16384 slave ba40235fdad71fb36c3bf165ea51055825d453c2 0 1733301261585 1 connected
be191621d4aa881d864a113c385d58b751753392 192.168.58.212:6385@16385 myself,master - 0 0 8 connected 10923-16383
30e5bdec200a671e4de666551d4489f0035235ba 192.168.58.212:6386@16386 slave 0a820807a70885c1d87d141824d3869dcf2418ee 0 1733301262869 3 connected
ba40235fdad71fb36c3bf165ea51055825d453c2 192.168.58.129:6381@16381 master - 0 1733301263074 1 connected 0-5460
fedf4b13be2122f44dde749a08c4b943582b3566 192.168.58.129:6382@16382 slave be191621d4aa881d864a113c385d58b751753392 0 1733301261700 8 connected

命令补充

当主节点宕掉之后,从节点没有上位成为主机使用如下命令强制提升为主机

redis-cli -p 6382 cluster failover force

从 6382 节点执行重新加入集群命令

redis-cli -a 111111 -p 6382 cluster meet 192.168.58.212 6385

到此这篇关于Redis高阶之容错切换的实现的文章就介绍到这了,更多相关Redis 容错切换   内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • redis如何查看锁是否存在

    redis如何查看锁是否存在

    文章介绍了两种方法来检查Redis锁的状态:使用GET命令查看锁的值和使用EXISTS命令检查锁的存在性,这两种方法都是通过连接到Redis服务器并执行相应的命令来实现的,GET命令用于获取指定键的值,而EXISTS命令用于检查指定键是否存在
    2025-01-01
  • 浅谈Redis缓冲区机制

    浅谈Redis缓冲区机制

    本文主要介绍浅谈Redis缓冲区机制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • Windows中redis设置密码的两种方法

    Windows中redis设置密码的两种方法

    之前写的一个项目,有项目代码,有数据库,但是本地没redis,没法跑此项目,故思考在本地安装一个redis做登录session存储,所以开始动手实践,下面这篇文章主要给大家介绍了关于Windows中redis设置密码的两种方法,需要的朋友可以参考下
    2023-04-04
  • Redis实现全局唯一id的使用示例

    Redis实现全局唯一id的使用示例

    全局ID生成器,是一种在分布式系统下用来生成全局唯一ID的工具,本文主要介绍了Redis实现全局唯一id的使用示例,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • Linux、Windows下Redis的安装即Redis的基本使用详解

    Linux、Windows下Redis的安装即Redis的基本使用详解

    Redis是一个基于内存的key-value结构数据库,Redis 是互联网技术领域使用最为广泛的存储中间件,这篇文章主要介绍了Linux、Windows下Redis的安装即Redis的基本使用详解,需要的朋友可以参考下
    2022-09-09
  • redis通过redis-dump镜像实现数据迁移

    redis通过redis-dump镜像实现数据迁移

    本文主要介绍了redis通过redis-dump镜像实现数据迁移,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-04-04
  • Redis 延时任务实现及与定时任务区别详解

    Redis 延时任务实现及与定时任务区别详解

    这篇文章主要为大家介绍了Redis 延时任务实现及与定时任务区别详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • Redis本地锁和分布式锁的区别小结

    Redis本地锁和分布式锁的区别小结

    Redis本地锁和分布式锁在设计目的、实现方式和应用场景上都有显著区别,下面就来介绍一下,具有一定的参考价值,感兴趣的可以了解一下
    2025-04-04
  • redis3.2配置文件redis.conf详细说明

    redis3.2配置文件redis.conf详细说明

    redis3.2配置详解,Redis启动的时候,可以指定配置文件,详细说明请看本文说明
    2018-03-03
  • Redis教程(一):Redis简介

    Redis教程(一):Redis简介

    这篇文章主要介绍了Redis教程(一):Redis简介,本文是系列文章的第一篇,欢迎大家跟随本教程学习Redis数据库,需要的朋友可以参考下
    2015-04-04

最新评论