1.环境准备
- master节点1个
- slave节点2个
- sentinel【哨兵】节点3个
- redis版本5.0.3
- 操作系统:Centos7
2.主从节点配置
创建redis-conf目录,此目录用于存放主从节点的配置文件
复制redis.conf,然后创建三个配置文件:redis-6379.conf,redis-6380.conf,redis-6381.conf
编辑主节点的配置文件,redis-6379.conf,增加一个密码
daemonize yes
requirepass 123456
编辑从节点的配置文件,redis-6380.conf
port 6380
daemonize yes
pidfile "/var/run/redis_6380.pid"
logfile "6380.log"
dir "/var/tmp/redis-5.0.3/data/6380"
replicaof 127.0.0.1 6379
masterauth 123456
appendonly yes
appendfilename "appendonly.aof"
requirepass 123456
编辑从节点的配置文件,redis-6381.conf
port 6381
daemonize yes
pidfile "/var/run/redis_6381.pid"
logfile "6381.log"
dir "/var/tmp/redis-5.0.3/data/6381"
replicaof 127.0.0.1 6379
masterauth 123456
appendonly yes
appendfilename "appendonly.aof"
requirepass 123456
通过启动主从节点查看状态
启动主节点:src/redis-server redis-conf/redis-6379.conf
启动从节点:src/redis-server redis-conf/redis-6380.conf
启动从节点:src/redis-server redis-conf/redis-6381.conf
测试主从节点是否能够进行正常的数据复制
3.哨兵节点配置
创建redis-sentinel目录,用于存放哨兵配置文件。且哨兵个数需要配置奇数个节点
复制sentinel.conf,然后创建三个配置文件:sentinel-26379.conf, sentinel-26380.conf, sentinel-26381.conf
在编辑每个哨兵节点时候,大家可以先参考一下自带sentinel.conf中默认的配置信息
port 26379
daemonize no
pidfile /var/run/redis-sentinel.pid
logfile ""
dir /tmp
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes
编辑sentinel-26379.conf,主要修改端口,后台启动进程,pidfile,logfile,dir,主从节点的密码,地址
port 26379
daemonize yes
pidfile "/var/run/redis-sentinel-26379.pid"
logfile "26379.log"
dir "/var/tmp/redis-5.0.3/data/26379"
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel auth-pass mymaster 123456
编辑sentinel-26380.conf,主要修改端口,后台启动进程,pidfile,logfile,dir,主从节点的密码,地址
port 26380
daemonize yes
pidfile "/var/run/redis-sentinel-26380.pid"
logfile "26380.log"
dir "/var/tmp/redis-5.0.3/data/26380"
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel auth-pass mymaster 123456
编辑sentinel-26381.conf,主要修改端口,后台启动进程,pidfile,logfile,dir,主从节点的密码,地址
port 26381
daemonize yes
pidfile "/var/run/redis-sentinel-26381.pid"
logfile "26381.log"
dir "/var/tmp/redis-5.0.3/data/26381"
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel auth-pass mymaster 123456
启动sentienl,系统会在配置文件中自动写入:哨兵的id,以及链接信息,例如sentinel-26379.conf启动后的完整信息
4.哨兵测试
关掉主节点,哨兵通过30秒的检查判断主节点是否挂掉。若挂掉则进行让其中的某个slave变为主节点,并再次完成主从复制操作(全量 或 部分)
登录sentinel-26379哨兵,进行查询
再一次登录sentinel-26380哨兵,进行查询
再一次登录sentinel-26381哨兵,进行查询