环境准备
三台redis服务器一个master两个slave
master 10.0.0.8
slave1 10.0.0.18
slave2 10.0.0.28
每台机器上设置哨兵sentinel(哨兵服务可以和Redis服务器分开部署在不同主机,但为了节约成本一般会部署在一起)
主从准备完以后,编辑哨兵配置
Sentinel实际上是一个特殊的redis服务器,有些redis指令支持,但很多指令并不支持.默认监听在26379/tcp端口.
#如果是编译安装,在源码目录有sentinel.conf,复制到安装目录即可,
cp redis-6.2.5/sentinel.conf /apps/redis/etc/sentinel.conf
chown redis.redis /apps/redis/etc/sentinel.conf
vim /etc/redis-sentinel.conf
三个哨兵服务器的配置都如下
port 26379
daemonize no
pidfile “/var/run/redis-sentinel.pid”
logfile “/var/log/redis/sentinel.log”
dir “/tmp”
sentinel monitor mymaster 10.0.0.8 6379 2 #修改此行
sentinel auth-pass mymaster 123456 #增加此行
sentinel down-after-milliseconds mymaster 3000 #修改此行
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes
#注意此行自动生成必须唯一,一般不需要修改,如果相同则修改此值需重启redis和sentinel服务
启动哨兵服务(#确保每个哨兵主机myid不同,如果相同,必须手动修改为不同的值)
如果是编译安装,在所有哨兵服务器执行下面操作启动哨兵
cat /lib/systemd/system/redis-sentinel.service
[Unit]
Description=Redis Sentinel
After=network.target
[Service]
ExecStart=/apps/redis/bin/redis-sentinel /apps/redis/etc/sentinel.conf —
supervised systemd
ExecStop=/bin/kill -s QUIT $MAINPID
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl start redis-sentinel.service
ss -ntl 查看端口
tail -f /var/log/redis/sentinel.log 查看哨兵日志