Redis
Redis入门系列
Redis是什么?
Redis学习推荐资料合集
Centos7源码部署Redis3.2.9
Redis版本历史
Redis字典
Redis原理
Redis的一致性哈希算法
Redis持久化 aof和rdb的原理配置
为什么Redis集群有16384个槽
Redis安装部署
Redis服务维护
Redis安全检查
Redis配置管理
redis性能测试redis-benchmark
redis迁移工具redis-migrate-tool
Redis配置文件参数详解
Redis5.0.8 Cluster集群部署
Redis监控参数
Reids安全加固
Redis增加测试数据
Redis慢查询配置和优化
Redis图形管理 redis-browser
Redis操作命令合集
redis实例cpu占用率过高问题优化
Redis_SQL语句
Redis集群
Redis集群断电恢复
Redis集群到集群迁移
Redis单点到集群迁移
Redis哨兵日志说明
Redis哨兵日常维护
Redis哨兵 部署和配置
Redis哨兵参数
Redis主从 部署和配置
Redis cluster 集群部署和配置
Redis cluster 集群命令合集
Redis cluster 集群报错合集
Redis新闻
Redis使用案例
你的Redis怎么持久化的
谈谈redis的热key问题如何解决
那些年用过的Redis集群架构
本文档使用 MrDoc 发布
-
+
home page
Redis哨兵 部署和配置
[TOC] ## 一.哨兵简介 ### 哨兵介绍 Sentinel(哨兵)是用于监控redis集群中Master状态的工具,其已经被集成在redis2.4+的版本中Sentinel可以自动对主从进行检测,当一个有问题后,将会自动切换从节点为主。 哨兵适合使用单点的redis,并有高可用需求的。因为始终是单台的redis,性能是有限度的,有更高需求可以选择集群。 在代码中,用jedis之类工具读取 Sentinel 的信息,获取当前没问题的主节点,进行写入操作即可。当主挂掉,Sentinel会自动切换,只要对最新的主节点进行读写即可。 如果将主从做高可用,需要监控Sentinel的信息输出,将所有从节点做一个资源池,读将从资源池里找从节点进行。 ### 哨兵原理 Sentinel系统时刻监控着主和从,当主挂掉后选择其中一个从来升任成主,可以启动多个Sentinel来避免监控挂掉,但多个Sentinel它们要投票。  **Sentinel作用** 1.Master状态检测 2.如果Master异常,则会进行Master-Slave切换,将其中一个Slave作为Master,将之前的Master作为Slave 3.Master-Slave切换后,master_redis.conf、slave_redis.conf和sentinel.conf的内容都会发生改变,即master_redis.conf中会多一行slaveof的配置,sentinel.conf的监控目标会随之调换 **Sentinel工作方式** 1.在一般情况下,每个 Sentinel 会以每 10 秒一次的频率向它已知的所有Master,Slave发送 INFO 命令来获得redis主从的节点信息 2.当Master被 Sentinel 标记为客观下线时,Sentinel 向下线的 Master 的所有 Slave 发送 INFO 命令的频率会从 10 秒一次改为每秒一次 3.每2秒,会订阅获取一下主节点的哨兵信息,来了解哨兵们的信息,有新的哨兵加入,将会记录新哨兵信息,并与他建立连接 4.每秒钟一次的频率向它所知的Master,Slave以及其他 Sentinel 实例发送一个 PING 命令 5.如果一个 实例 距离最后一次有效回复 PING 命令的时间超过 down-after-milliseconds 选项所指定的值, 则这个实例会被 Sentinel 标记为主观下线 6.当主观下线的节点是 Master 时,则询问其他哨兵,超过一定个数则判断主节点挂掉,进行客观下线 7.当需要对一个 Master 进行客观下线,就需要在 Sentinel 们中选举一个领导者来执行这个操作,对 Master 进行下线,选举才用Raft算法 8.若没有足够数量的 Sentinel 同意 Master 已经下线, Master 的客观下线状态就会被移除 9.若 Master 重新向 Sentinel 的 PING 命令返回有效回复, Master 的主观下线状态就会被移除 10 当对一个 Master 进行客观下线后,会从其它从中选择出一个执行`slaveof no one`命令,使其升级为主节点 11.向其它从节点发送命令,指定新主,并对新主进行数据复制 12.当原坏掉的主恢复后,将会作为新主的从节点 13.如果原坏掉的主删除不恢复,Sentinel依然会定期检测,会造成一定资源浪费 **主观下线和客观下线** 主观下线: Subjectively Down,简称SDOWN,指的是当前 Sentinel 实例对某个redis服务器做出的下线判断,这个判断只是认为,但并不做任何动作 客观下线: Objectively Down, 简称ODOWN,指的是多个 Sentinel 实例在对Master Server做出 SDOWN 判断,并且通过 SENTINEL is-master-down-by-addr 命令互相交流之后,得出的Master Server下线判断,然后开启failover ## 二.哨兵部署 ### 环境介绍 ```python [Redis-Server-1] 主机名 = host-1 系统 = centos-7.3 地址 = 1.1.1.1 软件 = redis-3.2.9 6379 26379 [Redis-Server-2] 主机名 = host-2 系统 = centos-7.3 地址 = 1.1.1.2 软件 = redis-3.2.9 6379 26379 ``` ### 哨兵配置 1.参照[Redis主从 部署和配置]( http://www.linkops.cn/329.htm "Redis主从 部署和配置"),先搭建一个主从结构 2.每个节点都填写主redis的ip和端口,最后的1代表只要有一个哨兵节点认为主有问题,就切换主从,有3个节点可以写2 `vim sentinel.conf` ```python protected-mode yes bind 1.1.1.1 #监听地址修改 daemonize yes port 26380 sentinel monitor mymaster 1.1.1.1 6379 1 #这里修改成主的信息 sentinel down-after-milliseconds mymaster 3000 sentinel failover-timeout mymaster 1800 ``` 3.启动 sentinel 启动之后,就会从主redis获取它的信息还有从redis的地址,当前可以看到哨兵的日志 `src/redis-sentinel sentinel.conf` 4.关闭master 我们手动关闭Master 之后,sentinel 在监听master 确实是断线了之后,将会开始计算权值,然后重新分配主服务器 ## 三.使用验证 连接哨兵,查看信息状态 `src/redis-cli -p 26379` `INFO`
日行一善
Dec. 10, 2020, 3:41 p.m.
Share documents
Collection documents
Last
Next
Scan wechat
Copy link
Scan your mobile phone to share
Copy link
关于 MrDoc
觅思文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果觅思文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护觅思文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
QQ粉丝交流群:882382311
Markdown文件
share
link
type
password
Update password