Redis哨兵模式
Redis主从模式会出现master挂了就不能用了的状态
什么是哨兵
Sentinel(哨兵)是用于监控Redis集群中Master状态的工具,是Redis高可用解决方案之一.哨兵可以监控一个或多个master服务.
当某个master服务挂了之后,会把slave升级为master.
配置哨兵
配置sentinel.conf步骤
- 在解压包里找到sentinel.conf
- 复制这个配置文件到指定的目录下(我的是:/usr/local/redis)
- 修改配置文件
修改配置文件sentinel.conf
# 端口
port 26379
# pid路径(自己指定,别忘了创建目录,要不会报错)
pidfile /var/run/redis-sentinel.pid
# 工作路径(自己指定)
dir /tmp
# 是否后台运行
daemonize yes
# 是否远程访问, 自己设置ip (这里我就全开放了)
protected-mode no
# 这是日志保存路径
logfile /usr/local/redis/redis-sentinel.log
继续修改配置文件
# 设置哨兵
sentinel `自己主节点的名字` `主节点的ip` `主节点的端口号` `2(2个以上的哨兵确认才能认为master挂了)`
# 设置密码
sentinel auth-pass `刚刚上面设置的主节点名字` `密码是多少`
# master被哨兵认定失效的毫秒数
sentinel down-after-milliseconds `刚刚上面设置的主节点名字` `认定失效的毫秒数`
# 选举新master后,剩余slave并行同步数据的个数
sentinel parallel-syncs `刚刚上面设置的主节点名字` `1`
# 主备切换的超时时间,哨兵故障切换超过这个时间,会由其他哨兵执行
sentinel failover-timeout `刚刚上面设置的主节点名字` `毫秒数`
如果发现数据不同步
切换master后发现数据不同步,检查一下redis.conf中的`masterauth`是否设置的密码
哨兵信息检查命令
# 查看xxx下的master节点信息
sentinel master xxx
# 查看xxx下的slaves节点信息
sentinel slaves xxx
# 查看xxx下的哨兵节点信息
sentinel sentinels xxx
# xxx 为设置的主节点名称
SpringBoot集成Redis哨兵模式
spring:
redis:
database: 1
password: xxx
sentinel:
master: 主节点设置的名字
nodes: 192.168.1.1:26379,192.168.1.2:26379,192.168.1.3:26379