目录
一、Redis主从复制
1. 基本概念:
单个Redis如果因为某种原因宕机的话,可能会导致Redis服务不可用,可以使用主从复制实现一主多从,主节点负责写的操作,从节点负责读的操作,主节点会定期将数据同步到从节点中,保证数据一致性的问题。
2. 搭建主从服务器
现有三台redis服务器,服务器ip分别为
192.168.1.100
192.168.1.103
192.168.1.105
现在将100配置成主服务器,103、105为从服务器
1.在103服务器中的redis.conf配置文件中搜索# replicaof <masterip> <masterport>
2.在下方添加slaveof 192.168.1.100 6379
、masterauth root
3.105服务器修改为slaveof 192.168.1.103 6379
、masterauth root
4.输入命令systemctl stop firewalld
分别关闭100、103、105服务器防火墙
5. 分别重启103、105服务器
6.在100服务器中,输入命令./redis-cli
、auth root
、info replication
查看主从服务器配置结果
7.在103服务器中,输入命令./redis-cli
、auth root
、info replication
查看主从服务器配置结果
该主从同步方式存在 如果从节点非常多的话,会导致对主节点同步多个从节点压力非常大
可以采用树状类型解决该问题
3. 主从复制数据同步的过程
1.Redis从节点向主节点建立socket连接
2.Redis采用全量或者增量的形式将数据同步给从节点
从Redis2.8版本以后 过程采用增量和全量同步
全量复制:一般用于在初次的复制场景(从节点与主节点一次建立)
增量复制:网络出现问题,从节点再次连接主节点时,主节点补发缺少的数据,每次数据增量同步
4. 主从复制存在哪些缺陷
如果主节点存在了问题,整个Redis环境是不可以实现写的操作,需要人工更改配置变为主操作
如何解决该问题:使用哨兵机制可以帮助解决Redis集群主从选举策略。
二、Redis哨兵机制
Redis的哨兵机制就是解决我们以上主从复制存在缺陷(选举问题),解决问题保证我们的Redis高可用,实现自动化故障发现与故障转移。
三、哨兵机制原理
- 哨兵机制每个10s时间只需要配置监听我们的主节点就可以获取当前整个Redis集群的环境列表,采用info 命令形式。
- 哨兵不建议是单机的,最好每个Redis节点都需要配置哨兵监听。
- 哨兵集群原理是如何:多个哨兵都执行同一个主的master节点,订阅到相同都通道,有新的哨兵加入都会向通道中发送自己服务的信息,该通道的订阅者可以发现新哨兵的加入,随后相互建立长连接。
- Master的故障发现 单个哨兵会向主的master节点发送ping的命令,如果master节点没有及时的响应,哨兵会认为该master节点为“主观不可用状态”会发送给其他都哨兵确认该Master节点是否不可用,当前确认的哨兵节点数>=quorum(可配置),会实现重新选举。
四、配置哨兵集群
现有三台redis服务器,服务器ip分别为
192.168.1.100、192.168.1.103、192.168.1.105
其中100为主服务器,其余为从服务器
1.将redis安装包中的哨兵配置文件复制到redis的安装目录中
cp /usr/redis-5.0.6/sentinel.conf /usr/redis/bin
cd /usr/redis/bin
2.在我们的三台服务器的哨兵配置文件中搜索daemonize
,将daemonize
后的值修改为yes(后台启动)搜索sentinel monitor mymaster
,设置主服务器、密码、确认机制(sentinel monitor mymaster 192.168.1.100 6379 2
,2表示宕机后需要2个哨兵确认是否宕机)
vi sentinel.conf
daemonize yes
sentinel monitor mymaster 192.168.1.100 6379 2
sentinel auth-pass mymaster root
3.分别启动个服务器的哨兵
./redis-sentinel ./sentinel.conf
其他配置:
sentinel down-after-milliseconds mymaster 3000#sentinel心跳检测主3秒内无响应,视为挂掉,开始切换其他从为主
sentinel parallel-syncs mymaster 1#每次最多可以有1个从同步主。一个从同步结束,另一个从开始同步。
sentinel failover-timeout mymaster 18000#主从切换超时时间
五、哨兵集群效果验证
1.在100主服务器中进入./redis-cli
、auth root
、info replication
查看一下主从关系
2.在103主服务器中进入./redis-cli
、auth root
、info replication
查看一下主从关系
3.关闭100服务器
4.在103服务器中再次查看主从配置info replication
,发现103已经变成主服务器
5.再次启动100服务器,并查看主从关系,100服务器已经变成从服务器
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/131225.html