redis主从复制哨兵模式sentinel
1 拷贝一份redis.conf作为slave的配置文件
cp redis.conf redis6380.conf
pidfile /var/run/redis6380.pid
2 修改redis6380.conf的rdb文件名称,修改pid文件
···
pidfile /var/run/redis6380.pid
port 6380
···
3 放开slave配置
slaveof [ip] 6379
4 配置是否只读
slave-read-only yes
5 可以将master的rdb关掉
#save 900 1
#save 300 10
#save 60 10000
6 将conf各个daemon 配置为no 方便查看启动日志
daemonize no
7 将 主服务配置文件的bind 改为0.0.0.0
bind 0.0.0.0
8 如果防火墙有问题可以暂时关闭
查看防火墙状态
firewall-cmd --state
停止firewall
systemctl stop firewalld.service
禁止firewall开机启动
systemctl disable firewalld.service
9 如果redis配置了密码,主从复制的时候,配置一下密码就好了
masterauth [master-password]
10 从服务器启动时可能报错: Error condition on socket for SYNC: Connection refused
可能原因是:
1)防火墙问题,见8
2) master的配置文件将bind改为0.0.0.0见7
3) 从服务器配置文件slaveof 配置不要使用localhost 使用IP
11 配置哨兵sentinel
配置redis 目录下sentinel.conf
### Port 设置:
port 26379 //哨兵端口号保持不变,可以修改,但是我没有修改
### dir 设置:
dir /root/application/program/redis/sentinel/ //哨兵程序的日志路径
### Sentinel Monitor 设置:
sentinel monitor mymaster 192.168.127.129 6379 1
### Down-After-Milliseconds 设置:
sentinel down-after-milliseconds mymaster 5000
//哨兵程序每5秒检测一次Master是否正常
### Parallel-Syncs 设置:
sentinel parallel-syncs mymaster 1
### Failover-Timeout 设置:
sentinel failover-timeout mymaster 60000
### 启动:redis-sentinel
redis-server sentinel.conf --sentinel & //(&有这可以Ctrl +C退到命令行,没有这个就直接退出哨兵进程)
redis-sentinel /path/to/sentinel.conf & //对于 redis-sentinel 程序, 你可以用以下命令来启动 Sentinel 系统
### 关闭:redis-sentinel
pkill redis-server //这个会关掉Redis服务器和Sentinel(哨兵)进程
kill 进程号 //可以关掉指定进程号的进程