Redis实操系列
目录
核心流程
实现目标
环境准备
环境搭建
1.创建相关文件夹
2.进入conf文件夹,创建sentinel-{port}.conf配置文件,并进行其内容编辑
3.启动哨兵集群
4.验证哨兵集群是否启动成功及是否生效
验证哨兵监听状态
验证Redis主从是否可以自动切换
验证Redis宕机节点启动后自动加入Redis集群
注意:环境搭建在一台虚拟机上演示
cd /usr/soft;
#创建目录
mkdir redis7sentinel;
cd redis7sentinel;
#创建配置目录
mkdir conf;
#创建data目录
mkdir data;
#创建日志目录
mkdir log;
#创建pid目录
mkdir pid;
创建完成后各文件夹路径如图所示
#进入配置目录
cd conf;
#创建哨兵1配置
touch sentinel-26379.conf;
#创建哨兵2配置
touch sentinel-26380.conf;
#创建哨兵3配置
touch sentinel-26381.conf;
分别编辑三个conf文件,将以下配置写入配置文件中
哨兵1(sentinel-26379.conf)配置文件如下:
#不限定ip访问
bind 0.0.0.0
#端口号26379
port 26379
#开启后台运行
daemonize yes
#pid文件路径
pidfile "/usr/soft/redis7sentinel/pid/redis-sentinel-26379.pid"
#sentinel日志路径
logfile "/usr/soft/redis7sentinel/log/sentinel-26379.log"
dir "/usr/soft/redis7sentinel/data"
#配置监听的主服务器:
# redis-master代表主服务器名称,可自定义;
# 127.0.0.1代表监控的主服务器IP;
# 6379代表监控的主服务器端口;
# 2代表只有两个或两个以上的哨兵认为主服务器不可用的时候才会进行failover操作;一般设定为哨兵的半数+1
sentinel monitor redis-master 127.0.0.1 6379 2
#sentinel auth-pass定义服务的密码,redis-master是主服务的自定义名称,123456是redis服务器密码
sentinel auth-pass redis-master 123456
#连接超时时间设定:超过5000毫秒 redis-master没有连接上,则认为master已宕机
sentinel down-after-milliseconds redis-master 5000
#失效转移failover失败超时时间设定:如果在该时间内没有完成failover操作,则认为本次failover失败
sentinel failover-timeout redis-master 30000
哨兵2(sentinel-26380.conf)配置文件如下:
bind 0.0.0.0
port 26380
daemonize yes
pidfile "/usr/soft/redis7sentinel/pid/redis-sentinel-26380.pid"
logfile "/usr/soft/redis7sentinel/log/sentinel-26380.log"
dir "/usr/soft/redis7sentinel/data"
sentinel monitor redis-master 127.0.0.1 6379 2
sentinel auth-pass redis-master 123456
sentinel down-after-milliseconds redis-master 5000
sentinel failover-timeout redis-master 30000
哨兵3(sentinel-26381.conf)配置文件如下:
bind 0.0.0.0
port 26381
daemonize yes
pidfile "/usr/soft/redis7sentinel/pid/redis-sentinel-26381.pid"
logfile "/usr/soft/redis7sentinel/log/sentinel-26381.log"
dir "/usr/soft/redis7sentinel/data"
sentinel monitor redis-master 127.0.0.1 6379 2
sentinel auth-pass redis-master 123456
sentinel down-after-milliseconds redis-master 5000
sentinel failover-timeout redis-master 30000
redis-server sentinel-26379.conf --sentinel
redis-server sentinel-26380.conf --sentinel
redis-server sentinel-26381.conf --sentinel
#查看哨兵1监听状态:26379为端口号
lsof -i:26379;
#查看哨兵2监听状态
lsof -i:26380;
#查看哨兵3监听状态
lsof -i:26381;
如果正常监听,则如下图所示:
当前6381为redis主服务
通过redis客户端关闭6381后
#通过客户端关闭redis主服务或通过kill 关闭
127.0.0.1:6381> shutdown
通过sentinel日志查看自动操作
#查看日志,日志为conf中的日志路径
tail -f /usr/soft/redis7sentinel/log/sentinel-26379.log
通过日志中可获取主服务自动切换到6379端口,查看6379端口为主服务,且从节点只有6380一个;
#启动宕机的redis-6381
redis-server /usr/soft/redis7cluster/conf/redis-6381.conf;
通过sentinel日志查看宕机节点恢复情况:
通过redis主节点查看从节点情况: