redis · 2021年6月17日 0

Redis-6.0.6 主从哨兵模式搭建记录

  • 准备工作
  • 开始部署
    • 搭建主从服务器
    • 在同级目录下执行 mkdir redis-master-slave
    • cd redis-master-slave
    • 新建6379与6380文件夹这两个文件夹是用来保存redis的启动配置文件和日志的
    • 配置6379服务器 vim redis-6379.conf 与6380服务器 vim redis-6380.conf
#当前 redis 端口定义:
port 6379
#redis 守护进程设置:
daemonize yes
# 设置密码
requirepass 123456
# 配置主节点的密码,哨兵模式切换的话原来的主服务也需要配置
masterauth "123456"
# 指定更新日志条件,共有3个可选值:
# no:表示等操作系统进行数据缓存同步到磁盘(快)
# always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全)
# everysec:表示每秒同步一次(折衷,默认值)
appendfsync everysec
# 开启AOF
appendonly yes
#保护模式:
protected-mode no
#redis 日志:
logfile "6379.log"
#redis 数据持久化文件定义:
dbfilename "dump-6379.rdb"
#淘汰策略最小使用
maxmemory-policy allkeys-lru
#redis 配置存储路径
dir "/home/app/redis-master-slave/6379"
port 6380
#redis 守护进程设置:
daemonize yes
# 设置密码
requirepass 123456
# 配置主节点的密码,哨兵模式切换的话原来的主服务也需要配置
masterauth "123456"
# 指定更新日志条件,共有3个可选值:
# no:表示等操作系统进行数据缓存同步到磁盘(快)
# always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全)
# everysec:表示每秒同步一次(折衷,默认值)
appendfsync everysec
# 开启AOF
appendonly yes
#保护模式:
protected-mode no
#redis 日志:
logfile "6380.log"
#redis 数据持久化文件定义:
dbfilename "dump-6380.rdb"
#淘汰策略最小使用
maxmemory-policy allkeys-lru
#redis 配置存储路径
dir "/home/app/redis-master-slave/6380"
#主机地址 此处为公网ip使用云服务器需要放开端口
slaveof ip 6379
  • 启动主从服务器
    • 启动主节点: redis-6.0.6/src/redis-server redis-master-slave/6379/redis-6379.conf
    • 启动从节点: redis-6.0.6/src/redis-server redis-master-slave/6380/redis-6380.conf
  • 验证主从节点关系
    • 主节点: redis-6.0.6/src/redis-cli -a 123456 -p 6379 info replication
      在这里插入图片描述
    • 从节点: redis-6.0.6/src/redis-cli -a 123456 -p 6380 info replication
      在这里插入图片描述
  • 节点验证完毕,开始配置哨兵信息,哨兵配置的原则是哨兵数量需>=节点数量,也就是说一主一从最少配两台哨兵,我服务器小池塘,就只配两台吧,正常情况下最好是配3台比较好
    • redis-master-slave 新建两个文件夹 16379 16380分别存放两个哨兵的配置信息等
    • cd 16379
    • vim sentinel_16379.conf
    • 16380同上
#端口
port 16379
#添加后台运行
daemonize yes
#配置监听的主服务器,这里sentinel monitor代表监控,mymaster代表服务器的名称,可以自定义,公网ip代表监控的主服务器,6379代表端口,2代表只有两个或两个以上的哨兵认为主服务器不可用的时候,才会进行failover操作。
sentinel monitor mymaster 公网ip 6379 1
#sentinel author-pass定义服务的密码,mymaster是服务名称,123456是Redis服务器密码
sentinel auth-pass mymaster 123456
#端口
port 16380
#添加后台运行
daemonize yes
#配置监听的主服务器,这里sentinel monitor代表监控,mymaster代表服务器的名称,可以自定义,公网ip代表监控的主服务器,6379代表端口,2代表只有两个或两个以上的哨兵认为主服务器不可用的时候,才会进行failover操作。
sentinel monitor mymaster 公网ip 6379 1
#sentinel author-pass定义服务的密码,mymaster是服务名称,123456是Redis服务器密码
sentinel auth-pass mymaster 123456
  • 启动哨兵
    • redis-6.0.6/src/redis-sentinel sentinel_16379.conf
    • redis-6.0.6/src/redis-sentinel sentinel_16380.conf
  • 验证关系
    • redis-6.0.6/src/redis-cli -a 123456 -p 16379 info Sentinel
    • redis-6.0.6/src/redis-cli -a 123456 -p 16380 info Sentinel

在这里插入图片描述

  • 主从切换验证
    • netstat -anp |grep 6379
    • kill -9 pid
  • 查看6380状态是否从slave切换为master
  • 重启6379后查看是否正常

以上为搭建Redis主从集群的全过程,云服务器记得在安全组中配置放行端口号,客户端使用时,链接哨兵即可