redis 哨兵 sentinel(一)配置

sentinel巡查监控后台master主机是否故障,如果故障根据投票数自动将某一个从库转换为新主库,继续对外服务

sentinel 哨兵的功能
  1. 监控 监控主从redis库运行是否正常
  2. 消息通知 哨兵可以将故障转移的结果发送给客户端
  3. 故障转移 如果master异常,则会进行主从切换,将其中一个slave作为新Master
  4. 配置中心 客户端通过连接哨兵来获得当前redis服务的主节点地址
sentinel.conf

在Ubuntu上我使用的是APT命令安装Redis:sudo apt install redis,安装完成之后redis.conf文件的默认路径是:/etc/redis/redis.conf,redis-server文件的默认路径是:/usr/bin/redis-server

假设我们有三个IP:10.108.3.86、10.108.3.186、10.108.3.187,我们把86作为redis的master节点,剩下两个作为slave节点

一、redis配置,修改redis.conf文件(以master为例):

设置绑定IP

bind 10.108.3.86

设置绑定端口

port 6379

是否开启保护模式,默认开启。

要是配置里没有指定bind和密码。开启该参数后,redis只会本地进行访问,拒绝外部访问。要是开启了密码和bind,

可以开启。否则最好关闭设置为no。

protected-mode no

redis进程是否以守护进程的方式运行

daemonize yes

密码

requirepass zen

master通讯密码(注意:只有master节点才添加这一项,其余节点不需要添加)

masterauth zen (主机才有,从机没有)

二、哨兵配置(所有节点):

新建一个/etc/redis/sentinel.conf配置文件,输入如下配置:

端口

port 26379

关闭保护模式,可以外部访问

protected-mode no

设置后台启动

daemonize yes

日志文件

logfile /var/log/redis/redis-server-sentinel.log

指定master主机IP地址和端口,并且指定当有2台哨兵认为主机挂了,则对主机进行容灾切换

sentinel monitor

sentinel monitor mymaster 10.108.3.86 6379 2

当redis实例中开启了requirepass,这里就需要提供密码

sentinel auth-pass mymaster zen

设置主机多少秒无响应,则认为挂了

sentinel down-after-milliseconds mymaster 3000

主备切换时,最多有多少个slave同时对新的master进行同步,这里设置为默认的1

sentinel parallel-syncs mymaster 1

故障转移的超时时间,这里设置为三分钟

sentinel failover-timeout mymaster 180000

三、启动哨兵(所有节点)

/usr/bin/redis-server /etc/redis/sentinel.conf --sentinel

四、停止哨兵(所有节点,以master节点为例)

redis-cli -a vm-ubunut-sentinel -c -h 10.108.3.86 -p 26379 shutdown

附加:

可以将启动哨兵、停止哨兵写成批处理文件,比如:start.shstop.sh,给两个文件授权:sudo chmod 775 start.sh、sudo chmod 775 stop.sh

之后就可以直接用批处理启动和停止哨兵,也可以设置开机启动

查看redis服务状态:sudo systemctl status redis

启动服务:sudo systemctl start redis

停止服务:sudo systemctl stop redis

相关推荐
凌虚6 小时前
面向 MySQL 用户的 PostgreSQL 快速上手指南
数据库·后端·架构
五阿哥永琪7 小时前
MySQL中操作json的函数!
数据库·mysql·json
来者皆善7 小时前
了解Mysql优化吗?如何优化索引?
数据库·mysql
凡尘——雨落凡尘8 小时前
PHP 线上十大隐形故障复盘:90% 的网站卡顿、502、雪崩,都是这些细节导致的
redis·nginx·php·session
赤壁小虾9 小时前
【渲染流水线】[逐片元阶段]-[透明度测试]以UnityURP为例
java·前端·数据库
MC皮蛋侠客9 小时前
SQLAlchemy 系列(七):高级建模与高效写入——批量 DML、方言与扩展
数据库·python
奈斯先生Vector10 小时前
把 Midjourney 二次编辑做成生产系统:customId 能力令牌、Action Graph 与 WebUI 精修工作台
数据库·人工智能·架构·aigc·音视频·midjourney
Lethehong11 小时前
双擎并驱·全链路并行:KFS让TB级异构增量同步秒级到达
数据库
MC皮蛋侠客11 小时前
SQLAlchemy 系列(八):AsyncIO、并发与 Web 生命周期——让每个并发任务持有自己的 Session
数据库·python
一水11 小时前
Redis实战:一个AI工作流系统里的五个应用场景,从传参到限流的完整链路
数据库·redis·wpf