准备三台虚拟机CentOS 7环境, 然后再下载 redis-5.0.8 安装包, 我是放在 /opt 目录
wget https://github.com/redis/redis/archive/5.0.8.tar.gz
解压
tar -xzvf redis-5.0.8.tar.gz
每台虚拟机的redis安装过程可以参考我之前的文章
众所周知, redis 的哨兵模式基于主从模式
1. 三台虚拟机
192.168.171.210(master)
端口6379
192.168.171.211(slave)
端口6379
192.168.171.212(slave)
端口6379
192.168.171.210 (sentinel)
端口26379
192.168.171.211 (sentinel)
端口26379
192.168.171.212 (sentinel)
端口26379
2. 编辑redis的配置文件 redis.conf
# bind 127.0.0.1 // 注释掉这行
protected-mode no // 关闭保护模式
requirepass 10010 // 设置redis密码, 如果设置密码, 三个redis实例必须设置一样的密码
在两个从机的 redis.conf 进行如下
replicaof 192.168.171.212 6379 // 这里设置redis master的IP和端口
masterauth 10010 // 设置 master 的密码
3. 编辑sentinel.conf配置文件
daemonize yes // 开启守护进程
sentinel monitor mymaster 192.168.171.212 6379 2
sentinel auth-pass mymaster 10010
4. 按照顺序启动
启动 master redis实例 --> 启动 replicaof redis实例 --> 启动三个 sentinel 实例
systemctl start redisd
./src/redis-sentinel sentinel.conf
5. 测试故障转移
./src/redis-cli -a 10010 -p 6379 DEBUG sleep 40
在 master 上执行上面这个命令, 40秒后, 观察master有没有换成别的实例