Redis 哨兵机制 (Sentinel)
在Redis主从复制中, 由于我们的Redis Master节点宕机之后, 从节点Slave无法自动的变为主节点, 从而无法为用户提供写的请求, 只能进行读. 为了解决这个问题, 我们引入了Redis 哨兵机制.
通过哨兵哨兵机制, 哨兵会监控所有节点, 当主节点宕机之后, 哨兵就会让其中的一个从节点来代替主节点, 接手它的写操作, 从而成为一个新的主从模式.
1. 配置Redis 哨兵机制
- 进入 Redis 安装目录
cd /home/software/redis-5.0.5sentinel.conf 就是我们哨兵机制的核心配置文件. - 将sentinel核心配置文件拷贝到我们的/usr/local/redis 下
cp sentinel.conf /usr/local/redis vim sentinel.conf编辑我们的哨兵核心配置文件
具体配置信息如下:
# Base
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
# Core
sentinel monitor beyond-master 192.168.92.132 6379 2
sentinel auth-pass beyond-master xxxxxx(密码)
sentinel down-after-milliseconds beyond-master 10000
sentinel parallel-syncs beyond-master 1
sentinel failover-timeout beyond-master 180000
2. 由于是哨兵集群, 所以3台redis节点的哨兵配置文件一模一样.
可以直接拷贝一份, 也可使用如下方式远程拷贝
PS: 将配置文件进行远程传输
scp sentinel.conf root@192.168.92.138:/usr/local/redis
scp sentinel.conf root@192.168.92.139:/usr/local/redis
3. 启动哨兵
redis-sentinel sentinel.conf 其中sentinel.conf是哨兵核心配置文件路径
PS: 没有文件夹及文件, 因为我们是事先定义好的目录, 我们去创建即可, 然后再次启动
mkdir /usr/local/redis/sentinel -p
ps -ef|grep redis 查看redis进程
tail -f redis-sentinel.log 动态查看哨兵日志文件末尾
4. 测试哨兵机制
- 开启所有的主从复制架构节点
- 关闭主节点
- 查看哨兵日志
- 启动原来的132master节点
- 查看哨兵日志