redis 哨兵部署
1.背景
redis哨兵模式,不同于集群部署。哨兵模式基于redis主从部署架构。
节点上都需要部署哨兵模式,哨兵模式会监控所有的 Redis 工作节点是否正常,当 Master 出现问题的时候,因为其他节点与主节点失去联系,因此会投票,投票过半就认为这个 Master 的确出现问题,然后会通知哨兵间,然后从 Slaves 中选取一个作为新的 Master。
程序使用Redis哨兵模式,需要配置相应代码。例如:
2.软件&环境准备
redis-6.0.8下载
3.安装
3.1离线部署
3.2在线部署
4.配置
注意:不同版本redis配置稍有不同。
##MAster redis.conf port 6379 redis端口号 daemonize yes #后台运行 pidfile "/var/run/redis_6379.pid" #pid logfile "/opt/istall/redis_6379.log" #日志 masterauth "password" # master密码 requirepass "password" #redis 密码 bind 0.0.0.0 #其他服务器可以访问
##Slave1 redis.conf port 6380 redis端口号 daemonize yes #后台运行 pidfile "/var/run/redis_6380.pid" #pid logfile "/opt/istall/redis_6380.log" #日志 masterauth "password" # master密码 requirepass "password" #redis 密码 bind 0.0.0.0 #其他服务器可以访问 replicaof 192.168.10.10 6379 #MasterIP和端口 ##Slave2 redis.conf port 6381 redis端口号 daemonize yes #后台运行 pidfile "/var/run/redis_6381.pid" #pid logfile "/opt/istall/redis_6381.log" #日志 masterauth "password" # master密码 requirepass "password" #redis 密码 bind 0.0.0.0 #其他服务器可以访问 replicaof 192.168.10.10 6379 #MasterIP和端口
#Master sentinel.conf protected-mode no #关闭保护模式 port 26379 #Redis哨兵默认的监听端口 daemonize yes #指定sentinel为后台启动 logfile "/opt/instll/redis_26379.log" #指定日志存放路径 pidfile "/var/run/redis-sentinel_26379.pid" #pid sentinel monitor mymaster 192.168.10.10 6379 2 #修改 指定该哨兵节点监控192.168.10.10:6379这个主节点,该主节点的名称是mymaster,最后的2的含义与主节点的故障判定有关:至少需要2个哨兵节点同意,才能判定主节点故障并进行故障转移 sentinel down-after-milliseconds mymaster 30000 #判定服务器down掉的时间周期,默认30000毫秒(30秒) sentinel failover-timeout mymaster 180000 #故障节点的最大超时时间为180000(180秒)
#Slave1 sentinel.conf protected-mode no #关闭保护模式 port 26380 #Redis哨兵默认的监听端口 daemonize yes #指定sentinel为后台启动 logfile "/opt/install/redis_26380.log" #指定日志存放路径 pidfile "/var/run/redis-sentinel_26380.pid" #pid sentinel monitor mymaster 192.168.10.10 6379 2 #修改 指定该哨兵节点监控192.168.10.10:6379这个主节点,该主节点的名称是mymaster,最后的2的含义与主节点的故障判定有关:至少需要2个哨兵节点同意,才能判定主节点故障并进行故障转移 sentinel down-after-milliseconds mymaster 30000 #判定服务器down掉的时间周期,默认30000毫秒(30秒) sentinel failover-timeout mymaster 180000 #故障节点的最大超时时间为180000(180秒) #Slave2 sentinel.conf protected-mode no #关闭保护模式 port 26381 #Redis哨兵默认的监听端口 daemonize yes #指定sentinel为后台启动 logfile "/opt/install/redis_26381.log" #指定日志存放路径 pidfile "/var/run/redis-sentinel_26381.pid" #pid sentinel monitor mymaster 192.168.10.10 6379 2 #修改 指定该哨兵节点监控192.168.10.10:6379这个主节点,该主节点的名称是mymaster,最后的2的含义与主节点的故障判定有关:至少需要2个哨兵节点同意,才能判定主节点故障并进行故障转移 sentinel down-after-milliseconds mymaster 30000 #判定服务器down掉的时间周期,默认30000毫秒(30秒) sentinel failover-timeout mymaster 180000 #故障节点的最大超时时间为180000(180秒)
5.运行
先启动Master的redis进程,然后启动Slave1、Slave2的redis进程。
cd /opt/instll/redis-6.0.8/src #进入安装目录 ./redis-server ../redis.conf
先启动Master的sentinel
进程,然后启动Slave1、Slave2的sentinel
进程。
cd /opt/instll/redis-6.0.8/src #进入安装目录 ./redis-sentinel ../sentinel.conf
6.测试
登录验证
cd /opt/instll/redis-6.0.8/src ./redis-cli #会车后,输入auth 后跟密码
查看主从复置信息
登录哨兵进程,查看当前哨兵模式信息
7.常见问题
参考:
https://www.jianshu.com/p/078f8fb3e07f
https://www.jianshu.com/p/1dae7c6ba30e
https://blog.csdn.net/m0_58292366/article/details/125706041
https://blog.csdn.net/linuxguitu/article/details/110872699
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~