当 redis 使用3台以上服务器组成一个集群时,会涉及到哨兵模式的配置,如何配置哨兵模式以及如何配置参数我们这里不做阐述,只对相关启动命令和排查哨兵模式状态是否正常做说明。
常用涉及redis哨兵模式的命令
1.查看哨兵模式状态
假设系统集群中的三台服务器为 x.x.60.11、x.x.60.12、x.x.60.13,其中60.12为集群主机
1 | ./redis-cli -h 当前服务器ip地址 -p 26379 INFO |
查看哨兵模式状态的别名是否正确,状态(status)是否ok,address是否指向x.x.60.12,如果都正常则无异常。
2.查看进程中 redis 的服务
1 | ps -ef | grep redis |
正常情况下会存在两个进程
1 | UID PID PPID C STIME TTY TIME CMD |
3.关闭哨兵模式服务
1 | kill -9 6788 6789 #上述的进程号 |
4.启动服务
1 | ./redis-server redis.conf |
排查 redis 哨兵模式异常情况
1.检查哨兵模式状态
ps:ip 地址分别更改为三台服务器的地址
1 | ./redis-cli -h 当前服务器ip地址 -p 26379 INFO |
如果某台服务器status为odown,或者address指向不为x.x.60.12,则说明集群出现问题,需要重启集群。
2.检查哨兵模式配置文件是否正常
1 | # 查看每台服务器的 sentinel.conf 配置文件 |
查看 sentinel monitor redismaster "ip地址" 6379 0,检查 ip 地址是否为主机地址,如果不为该值则说明sentinel 有误,在 redis 的服务都暂时的情况下再修改配置文件,修改该ip地址为主机地址,然后保存。
排查完如上问题,重启服务
启动顺序,** 优先启动主机的服务 **
1 | # 先启动主机的 redis |
然后再启动从机的 redis
然后再启动哨兵模式
1 | # 先启动主机的 sentinel |
然后再启动从机的 sentinel
查询状态
在三台服务器中输入 ps -ef | grep redis,如果存在两个 redis 进程则说明应用启动正常。
然后分别在三台服务器输入 ./redis-cli -h 当前服务器ip地址 -p 26379 INFO,如果别名、状态、指向地址都正确,则说明哨兵模式正常。
然后可以通过应用验证 redis 是否恢复完毕。