redis哨兵模式

Dear 丶 2022-10-02 00:45 264阅读 0赞

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

Redis sentinel介绍

Redis Sentinel是Redis高可用的实现方案。Sentinel是一个管理多个Redis实例的工具,它可以实现对Redis的监控、通知、自动故障转移。

Redis Sentinel的主要功能

Sentinel的主要功能包括主节点存活检测、主从运行情况检测、自动故障转移(failover)、主从切换。Redis的Sentinel最小配置是一主一从。 Redis的Sentinel系统可以用来管理多个Redis服务器,该系统可以执行以下四个任务:

  • 监控

    Sentinel会不断的检查主服务器和从服务器是否正常运行。

  • 通知

    当被监控的某个Redis服务器出现问题,Sentinel通过API脚本向管理员或者其他的应用程序发送通知。

  • 自动故障转移

    当主节点不能正常工作时,Sentinel会开始一次自动的故障转移操作,它会将与失效主节点是主从关系的其中一个从节点升级为新的主节点, 并且将其他的从节点指向新的主节点。

  • 配置提供者

    在Redis Sentinel模式下,客户端应用在初始化时连接的是Sentinel节点集合,从中获取主节点的信息。

Redis Sentinel的工作流程

参考链接(含图):http://www.cnblogs.com/jifeng/p/5138961.html

  1. Sentinel负责监控集群中的所有主、从Redis,当发现主故障时,Sentinel会在所有的从中选一个成为新的主。
  2. 并且会把其余的从变为新主的从。同时那台有问题的旧主也会变为新主的从,也就是说当旧的主即使恢复时,
  3. 并不会恢复原来的主身份,而是作为新主的一个从。
  4. Redis高可用架构中,Sentinel往往不是只有一个,而是有3个或者以上。目的是为了让其更加可靠,毕竟主
  5. 和从切换角色这个过程还是蛮复杂的。

相关概念

  • 主观失效

    SDOWN(subjectively down),直接翻译的为”主观”失效,即当前sentinel实例认为某个redis服务为”不可用”状态.

  • 客观失效

    ODOWN(objectively down),直接翻译为”客观”失效,即多个sentinel实例都认为master处于”SDOWN”状态,那么此时master将处于ODOWN,ODOWN可以简单理解为master已经被集群确定为”不可用”,将会开启failover

环境准备

准备3台机器,其中每台机器上都有两个角色,分配如下:









































主机名 IP:Port 角色
wangzb01 192.168.153.133:6379 Redis Master
wangzb02 192.168.153.134:6379 Redis Slave1
wangzb03 192.168.153.135:6379 Redis Slave2
wangzb01 192.168.153.133:26379 Sentinel1
wangzb02 192.168.153.134:26379 Sentinel2
wangzb03 192.168.153.135:26379 Sentinel3

部署

安装Redis

步骤略

部署Redis主从

步骤略

部署Sentinel

三台Sentinel配置文件是一样的,编辑配置文件

vi /etc/sentinel.conf #内容如下

  1. # 端口
  2. port 26379
  3. # 是否后台启动
  4. daemonize yes
  5. # pid文件路径
  6. pidfile /var/run/redis-sentinel.pid
  7. # 日志文件路径
  8. logfile "/var/log/sentinel.log"
  9. # 定义工作目录
  10. dir /tmp
  11. # 定义Redis主的别名, IP, 端口,这里的2指的是需要至少2个Sentinel认为主Redis挂了才最终会采取下一步行为
  12. sentinel monitor mymaster 127.0.0.1 6379 2
  13. # 如果mymaster 30秒内没有响应,则认为其主观失效
  14. sentinel down-after-milliseconds mymaster 30000
  15. # 如果master重新选出来后,其它slave节点能同时并行从新master同步数据的台数有多少个,显然该值越大,所有slave节
  16. ##点完成同步切换的整体速度越快,但如果此时正好有人在访问这些slave,可能造成读取失败,影响面会更广。最保守的设置
  17. ##为1,同一时间,只能有一台干这件事,这样其它slave还能继续服务,但是所有slave全部完成缓存更新同步的进程将变慢。
  18. sentinel parallel-syncs mymaster 1
  19. # 该参数指定一个时间段,在该时间段内没有实现故障转移成功,则会再一次发起故障转移的操作,单位毫秒
  20. sentinel failover-timeout mymaster 180000
  21. # 不允许使用SENTINEL SET设置notification-script和client-reconfig-script。
  22. sentinel deny-scripts-reconfig yes

启动服务

启动顺序:主Redis -> 从Redis -> Sentinel1/2/3

Sentinel 启动命令

  1. redis-sentinel /etc/sentinel.conf

Sentinel操作

  • sentinel master mymaster

    输出被监控的主节点的状态信息

  • sentinel slaves mymaster

    查看mymaster的从信息

  • sentinel sentinels mymaster

    查看其他Sentinel信息

测试

停止Redis从

停止Redis主

停止sentinel1

客户端连接问题

使用sentinel后,客户端(如,php)如何连Redis呢?

参考:https://blog.51cto.com/chenql/1958910

转载于:https://my.oschina.net/u/3954059/blog/3034398

发表评论

表情:
评论列表 (有 0 条评论,264人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Redis哨兵模式

    ?哨兵是一个分布式系统,用来对主从结构中的每一台服务器进行监控,当出现故障的时候,通过投票机制来选择出新的master,并且把所有slave连接到新的master?哨兵有...

    相关 Redis哨兵模式

    主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更多时候,我们优先

    相关 Redis哨兵模式

    Redis哨兵模式 1、介绍哨兵模式 首先,哨兵模式是一种监控机制,并不是redis独有的。 哨兵模式是一种特殊的模式,首先redis提供了哨兵的命令,哨兵是一个独立

    相关 Redis哨兵模式

    (自动选举主机的模式) 概述 主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用。这

    相关 Redis 哨兵模式

    在 [Redis如何实现主从复制][Redis] 这篇文章中已经介绍了我们如何搭建一个小的 Redis 集群,从而实现主从复制。但是有一个缺点,master 宕机之后,其余的

    相关 redis哨兵模式

    设置的哨兵模式和其他redis服务器相同,只不过不能做存储等处理 哨兵也是 Redis 服务器,只是它与我们平时提到的 Redis 服务器职能不同,哨兵负责监视普通的 Red