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

posted @ 2022-10-10 15:24  aongao  阅读(2156)  评论(1编辑  收藏  举报