Sentinel 哨兵模式作用
如果单点redis部署的话,redis挂掉会影响系统的功能,因此需要一个方案来保证总有一台redis恩能够提供服务。而Redis-Sentinel就是官方推荐的解决方案,即部署两台redis,master和slave,二者数据实时同步,并且同时在两台机器上启动两个Sentinel进程来进行监控,一旦master挂掉,则动态切换到slave上进行主备倒换,slave升为master提供服务,保证业务可用性,当之前挂掉的master恢复后,再成为当前master的slave进行备份。
conf配置
redis的conf文件没有特殊配置,设置为备机的redis增加slave-of配置
slaveof 127.0.0.16379
redis配置文件配置
配置完成后,即可启动
#启动master redis
redis-server /etc/redis-cluster/redis-master-6379.conf
#启动slave redis
redis-server /etc/redis-cluster/redis-slave-6380.conf
#启动redis-sentinel
redis-sentinel /etc/redis-cluster/redis-sentinel_26379.conf
redis-sentinel /etc/redis-cluster/redis-sentinel_26380.conf
查看启动信息
redis连接命令
$ redis-cli -h host -p port -a password
info 查看命令
$ info replication
$ info sentinel
可以手动杀掉当前master,通过上述命令验证master切换是否正常。
springBoot配置
添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- session管理 -->
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
修改配置
# redis
redis:
database: 6
sentinel:
master: mymaster
nodes: 10.97.98.128:26380,10.97.3.133:26380
pool:
max-active: 8
max-total: 50
max-idle: 8
max-wait: -1
min-idle: 0
timeout: 3000