Redis高级应用,Redis的主从同步配置,Redis的主从哨兵模式配置;

Sentinel 哨兵是 redis 官方提供的高可用方案,可以用它来监控多个 Redis 服务实例的运行情况。Redis Sentinel 是一个运行在特殊模式下的 Redis 服务器。Redis Sentinel 是在多个Sentinel 进程环境下互相协作工作的。

Sentinel 系统有三个主要任务:

1.监控:Sentinel 不断的检查主服务和从服务器是否按照预期正常工作。
2.提醒:被监控的 Redis 出现问题时,Sentinel 会通知管理员或其他应用程序。
3.自动故障转移:监控的主 Redis 不能正常工作,Sentinel 会开始进行故障迁移操作。将一个从服务器升级新的主服务器。 让其他从服务器挂到新的主服务器。同时向客户端提供新的主服务器地址

高可用 Sentinel 哨兵配置
哨兵作为对redis实例的监控,通过选举算法保证哨兵的鲁棒性和高可用,所以哨兵至少要部署3台,符合半数原则,需要5或者7,超过一半,不包含一半存活的时候,才能够选举出leader,才能进行主从的切换功能。
redis服务,至少需要存活一台,才能保证服务正常运行sentinel ,选择新 master 的原则是最近可用且数据最新且优先级最高且活跃最久
哨兵高可用测试:分别连接对应的redis服务端,手动停止哨兵,停止主reids服务,看主从是否切换成功。
三哨兵情况:redis实例挂掉两台,剩下一台能够成为主,自动切换

哨兵系统的搭建过程,有几点需要注意:

(1)哨兵系统中的主从节点,与普通的主从节点并没有什么区别,故障发现和转移是由哨兵来控制和完成的。 (2)哨兵节点本质上是redis节点。
(3)每个哨兵节点,只需要配置监控主节点,便可以自动发现其他的哨兵节点和从节点。
(4)在哨兵节点启动和故障转移阶段,各个节点的配置文件会被重写(config rewrite)。
(5)一个哨兵可以只监控了一个主节点;实际上,一个哨兵可以监控多个主节点,通过配置多条sentinel monitor即可实现。

哨兵模式和主从同步简图
在这里插入图片描述

Redis哨兵模式 — 高可用方案
高可用都有一个特点,故障迁移特点,发生故障在从服务器选举一台成为主服务器

配置哨兵模式需要先配置Redis的主从同步
Centos 7.4
master:192.168.142.139 — node1
salve1:192.168.142.154 — node2
slave2:192.168.142.155 — node3

Redis主从同步配置如下

修改主服务器的配置文件
在主库上修改配置并绑定地址,为了方便这里绑定0.0.0.0

[root@node1 ~]# vim /etc/redis/redis.conf 
bind 0.0.0.0
daemonize yes
appendonly yes

从服务器的配置
node2

[root@node2 ~]# vim /etc/redis/redis.conf 
bind 0.0.0.0
daemonize yes
appendonly yes
replicaof 192.168.142.139 6379

node3

[root@node3 ~]# vim /etc/redis/redis.conf 
bind 0.0.0.0
daemonize yes
appendonly yes
replicaof 192.168.142.139 6379

主从配置完成重启redis进行测试验证
在主服务器上创建键值在从服务器上查看
在主上进行配置
在这里插入图片描述
在从服务器上进行查看
在这里插入图片描述
在node3从服务器上查看
在这里插入图片描述
可以查看从库的状态信息
redis-cli info replication
在这里插入图片描述

主从配置好了后可以配置哨兵

在每一台哨兵服务器上都可以怎么配置,先进入主服务器进行配置

[root@node1 ~]# cd /etc/redis/
[root@node1 redis]# vim sentinel.conf
bind 127.0.0.1 192.168.142.139
daemonize yes
port 26379

#声明该哨兵的主库是mymaster,主库的ip和端口分别为192.168.142.1396379
#最后一个2的含义是,在哨兵发生领导选举时,该哨兵需要获得2票才能成为leader
sentinel monitor mymaster 192.168.142.139 6379 2

完成上面配置即可;
还有一些另外的配置也可以进行配置

[root@node1 redis]# vim sentinel.conf
#在mymaster宕机30秒后进行主观下线
sentinel down-after-milliseconds mymaster 30000
#指定在发生failover故障转移时最多可以有1个slave同时对新的master进行同步
sentinel parallel-syncs mymaster 1

#设置故障转移超时时间为180秒
#这个参数的意义比较复杂,详细可以参考官方的注释说明
sentinel failover-timeout mymaster 180000

配置完成后保存可以将配置文件发送给另外两台从服务器:
通过scp传递并覆盖即可

[root@node1 redis]# scp sentinel.conf 192.168.142.154:/etc/redis
[root@node1 redis]# scp sentinel.conf 192.168.142.155:/etc/redis

传递过去需要将bind绑定地址修改为本服务器的地址
配置完成可以通过日志查看信息
tail -f /var/log/redis/redis.log
tail -f /var/log/redis/sentinel.log

登录到哨兵的端口进行查看信息
redis-cli -p 26379
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值