Redis高可用方案:主从复制+哨兵模式
经典案例:一主二从三哨兵,及springboot集成配置
第一.配置
1.主节点配置(redis.conf)
# 主节点配置 仅展示必要配置 redis.conf
# 保护模式设置为关,方便其他节点访问
protected-mode no
# redis默认端口
port 6379
# 后台启动模式
daemonize yes
# 本实例密码
requirepass 123456
# 主redis密码,不管当前是主还是从都要配置,且主从密码必须一致
masterauth 123456
# 本实例进程号文件
pidfile /var/run/redis_6379.pid
# 本实例日志文件路径
logfile /usr/local/redis/redis.log
# 本实例工作目录
dir /usr/local/redis
# slave只读模式
slave-read-only yes
 
2.从节点配置(redis.conf)
# 从节点配置 仅展示必要配置 redis.conf
# 保护模式设置为关,方便其他节点访问
protected-mode no
# redis默认端口
port 6379
# 后台启动模式
daemonize yes
# 本实例密码
requirepass 123456
# 配置主redis的IP和端口
slaveof 192.168.31.103 6379
# 主redis密码,不管当前是主还是从都要配置,且主从密码必须一致
masterauth 123456
# 本实例进程号文件
pidfile /var/run/redis_6379.pid
# 本实例日志文件路径
logfile /usr/local/redis/redis.log
# 本实例工作目录
dir /usr/local/redis
# slave只读模式
slave-read-only yes
 
3.哨兵节点配置
# 哨兵节点配置 sentinel.conf
# 保护模式设置为关,方便其他节点访问
protected-mode no  
# 哨兵默认端口号
port 26379
# 后台启动模式
daemonize yes
# 哨兵机制默认进程号
pidfile /var/run/redis-sentinel.pid
# 哨兵模式的日志文件路径
logfile /usr/local/redis/sentinel/redis-sentinel.log
# 哨兵模式的工作目录
dir /usr/local/redis/sentinel
# redis-master 自定义名称 192.168.31.103 6379 主节点ip+端口 2 salve投票看让谁接替成为主机,得票数多少后成为主机
sentinel monitor redis-master 192.168.31.103 6379 2
# 设置主节点密码
sentinel auth-pass redis-master 123456
# 被哨兵任务失效的毫秒时间段,默认为30秒,单位毫秒
sentinel down-after-milliseconds redis-master 30000
# 当从节点后变为主节点后,进行配置其他的,多少个从节点进行并行复制 1 一次接一个复制 2 一次复制2个
sentinel parallel-syncs redis-master 1
#主备的切换时间,哨兵进行故障转移如果超时,则会交给哨兵集群的另一个节点处理进行故障转移
sentinel failover-timeout redis-master 180000
 
第二.主机说明(本案例采用六台主机,一台主,两台从,三台哨兵)
| 主机 | IP | 配置 | 
|---|---|---|
| 主节点 | 192.168.31.103 | 主节点配置(redis.conf) | 
| 从节点 | 192.168.31.104 | 从节点配置(redis.conf) | 
| 从节点 | 192.168.31.105 | 从节点配置 (redis.conf) | 
| 哨兵节点 | 192.168.31.106 | 哨兵节点配置(sentinel.conf) | 
| 哨兵节点 | 192.168.31.107 | 哨兵节点配置(sentinel.conf) | 
| 哨兵节点 | 192.168.31.108 | 哨兵节点配置(sentinel.conf) | 

第三.各节点状态
1.主节点 192.168.31.103

2.从节点 192.168.31.104/192.168.31.105

3.哨兵节点 192.168.31.106/192.168.31.107/192.168.31.108

第四.模拟主节点宕机

 
 
 103主节点宕机,105从节点变为主节点,103节点恢复之后将变成从节点继续工作
 
第五.模拟哨兵节点宕机
哨兵节点106宕机

主节点105宕机

103成为新的主节点

第六.springboot配置文件
spring:
  redis:
    # 主从节点的密码,主从redis密码要求一致
    password: 123456
    sentinel:
      # redis哨兵配置sentinel.conf里指定的主名称
      master: redis-master
      # 所有哨兵的地址
      nodes: 192.168.31.106:26379,192.168.31.107:26379,192.168.31.107:26379
 

 



















