Redis集群主从复制及哨兵模式实现

栏目: 数据库 · 发布时间: 5年前

内容简介:首先准备机器,我用的是三台linux虚拟机,版本4.0.10.进入三台机器后先关闭防火墙,我的是centos7.systemctl stop firewalld.service

Redis主从复制

首先准备机器,我用的是三台 linux 虚拟机,版本4.0.10.

进入三台机器后先关闭防火墙,我的是centos7.

systemctl stop firewalld.service

Redis集群主从复制及哨兵模式实现

如图128为配置 redis 主数据库的机器,其他为从库。

主机128配置只需要放开保护模式让其他机器能连接redis实例,修改redis.conf:

  • bind 0.0.0.0 - 修改为如下表示允许别的ip连接,默认是本地ip才能连接
  • protected-mode no - 关闭保护模式

129和130从服务器找到redis.conf找到对应的地方修改为如下:

  • 配置主机的ip和redis端口 slaveof 192.168.64.128 6379
  • 主redis服务器配置了密码,则需要配置(我做的时候没配置) masterauth 123456

然后先启动128主机的redis,再启动另外2台机器的从库redis,./redis-cli进入查看信息info可看到

角色及从库的信息

Redis集群主从复制及哨兵模式实现

哨兵机制

  • 1.修改sentinel.conf配置文件 sentinel monitor mymaster 192.168.64.128 6379 1 #主节点 名称 IP 端口号 选举次数
  • 设置了密码的话则需配置(我的没配) sentinel auth-pass mymaster 123456
  • 2 修改心跳检测 5000毫秒 sentinel down-after-milliseconds mymaster 5000
  • 3.sentinel parallel-syncs mymaster 2 --- 做多多少合格节点
  • 4 如果10秒后,mysater仍没活过来,则启动failover sentinel failover-timeout mymaster
    10000

另外做哨兵模式的时候从库的配置redis.conf也要修改,允许别的机器连接

就是上面讲过的修改bind还有关闭保护模式.

启动哨兵模式

./redis-server /usr/local/redis/etc/sentinel.conf --sentinel &

成功的话如下:

Redis集群主从复制及哨兵模式实现

然后验证哨兵机制的故障自动转移,选举master主库。在主机128上进入./redis-cli,命令shutdown,128主库死了.

再看哨兵日志

11571:X 02 Jun 05:35:19.498 # +elected-leader master mymaster 192.168.64.130 6379

选择130为新的主库。这时查看130redis信息发现角色变为Master.

原来的主库128若重新启动成功后角色就变为slave即从库了。

配置哨兵模式的时候遇到比较多坑:

1.配置主从的时候若从库报一下socket错误,通信失败的,一般是防火墙没关闭.

2.哨兵机制故障自动转移的时候实际上是动态在修改配置文件,有需要从新启动哨兵机制的时候要检查下配置文件是否被修改,即①redis.conf配置的slave 主机ip 端口信息这些,自动修改了要改回去再验证,比如slave自动去掉了,或者没有slave的给你自动添加了。②哨兵配置文件sentinel.conf配置的主机信息是否被更改,还有拉到最下面是否添加了参与选举的从库的信息。

我的话第二点踩坑比较多,花的时间长.


以上所述就是小编给大家介绍的《Redis集群主从复制及哨兵模式实现》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web开发敏捷之道

Web开发敏捷之道

Sam Ruby、Dave Thomas、David Heineme Hansson / 慕尼黑Isar工作组、骆古道 / 机械工业出版社 / 2012-3-15 / 59.00元

本书第1版曾荣获Jolt大奖“最佳技术图书”奖。在前3版的内容架构基础上,第4版增加了关于Rails中新特性和最佳实践的内容。本书从逐步创建一个真正的应用程序开始,然后介绍Rails的内置功能。全书分为3部分,第一部分介绍Rails的安装、应用程序验证、Rails框架的体系结构,以及Ruby语言的知识;第二部分用迭代方式创建应用程序,然后依据敏捷开发模式搭建测试案例,最终用Capistrano完成......一起来看看 《Web开发敏捷之道》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器