Linux环境下Redis-5.0.5哨兵机制搭建
1、服务器准备
准备三台及三台以上的Linux服务器
我这里准备四台Redis服务器
IP地址为:
192.168.114.128 (主机) 端口:6379
192.168.114.129 (从机) 端口:6379
192.168.114.130 (从机) 端口:6379
192.168.114.131 (哨兵) 端口:26379
2、安装Redis
在每台Liunx服务器上安装好redis,并测试能够成功启动。
redis安装教程点击这里
3、Redis主从配置文件修改
在redis从机上配置主从复制配置
redis主从复制教程点击这里
4、Redis哨兵模式配置文件修改
此处只需要正对哨兵的那台机子上的redis的sentinel.conf文件做改动即可,其他主机与从机无须配置哨兵配置文件。我这里也就是只需要对192.168.114.131这台机子配置哨兵配置文件即可
进入redis压缩包文件解压处,我的位置在/home/redis-5.0.5
cd /home/redis-5.0.5
复制配置文件sentinel.conf
cp /home/redis-5.0.5/sentinel.conf /usr/local/redis/etc
进入redis安装目录
cd /usr/local/redis/etc
编辑sentinel.conf
vim sentinel.conf
5、修改从机配置文件sentinel.conf
搜索daemonize,将daemonize的值从no设置为yes(设置哨兵模式为后台启动)
daemonize yes
搜索pidfile(pid文件),设置值
pidfile /usr/local/redis/run/redis-sentinel.pid
搜索logfile(日志文件),设置值
logfile "/usr/local/redis/logs/redis-sentinel.log"
搜索dir(工作目录),设置值
dir /usr/local/redis/tmp
搜索sentinel monitor mymaster,设置主机IP地址
[redis主机IP地址],[端口号],[选举次数]
sentinel monitor mymaster 192.168.114.128 6379 1
搜索 auth-pass,设置redis主机访问密码
sentinel auth-pass mymaster 123456
搜索down-after-milliseconds,心跳检测8000毫秒,如果主机8秒内没有相应,就会在从机开始选举
sentinel down-after-milliseconds mymaster 8000
搜索parallel-syncs,在执行故障转移时, 最多可以有多少个从服务器同时对新的主服务器进行同步, 这个数字越小, 完成故障转移所需的时间就越长。
sentinel parallel-syncs mymaster 1
7、创建与配置文件所关联的文件及目录
mkdir /usr/local/redis/run
touch /usr/local/redis/run/redis-sentinel.pid
touch /usr/local/redis/logs/redis-sentinel.log
mkdir /usr/local/redis/tmp
8、修改主机中的配置文件
在主机的redis.conf配置masterauth密码,因为当主机挂了后,再次重启会变成从机,无法直接变为主机。
然后,有个建意,将所有的主机与从机密码设置最好是一致,不然密码不一致的情况下可能会无法成功访问到主机。
masterauth 123456
9、启动redis主机与从机
进入redis目录
cd /usr/local/redis/bin
输入启动命令,并指定配置文件
./redis-server /usr/local/redis/etc/redis.conf
进入redis控制台
./redis-cli -h 127.0.0.1 -p 6379 -a “123456”
6379:代表你redis启动时的端口号(该项在配置文件中也可配置)
123456:代表你刚刚在redis配置文件中设置的密码
10、启动redis哨兵模式
进入redis目录
cd /usr/local/redis/bin
输入启动命令,并指定配置文件
./redis-server /usr/local/redis/etc/sentinel.conf --sentinel &
此时控制台会出现一个进程号,我们使用命令查看redis进程
查看进行是否已成功运行
ps -ef|grep redis
如果此时,存在相同的redis进程说明哨兵模式启动成功。
也可以通过将哨兵配置文件中的daemonize值设h为no,可以直接查看哨兵模式是否启动成功
11、查看redis信息
在IP为192.168.114.128的机器中中输入info,查看redis主从信息
info
这个时候我们找到Replication
发现当前机器的角色为 master(主机)
从机分别为 192.168.114.129:6379与192.168.114.130:6379
12、展示选举策略
此时我们将192.168.114.128:6379这台服务器中的redis服务关闭
shutdown
稍等8秒至10秒
我们去 192.168.114.129:6379这台服务器上再次查询redis主从信息
这个时候我们找到Replication
我们发现现在的master为192.168.114.130:6379
此时证明我们的哨兵模式搭建成功
13、启动刚刚关闭的redis服务器
开启刚刚关闭的192.168.114.128:6379服务器
稍等一会后,然后我们往192.168.114.130:6379再次查看,redis主从信息
这个时候我们找到Replication
此时我们发现这个时候的主机依旧是192.168.114.130:6379,所以当redis主机宕机后,再次重启原先的主机是不会直接变为主redis的
15、关闭哨兵模式
./redis-cli -h 127.0.0.1 -p 26379 shutdown
16、其他说明
如果需要被其他IP所访问,需关闭防火墙,或者开启与redis相同的端口
临时关闭防火墙命令
systemctl stop firewalld
开启26379端口
firewall-cmd --zone=public --add-port=26379/tcp --permanent
更新防火墙规则
firewall-cmd --complete-reload
查看当前所开放的端口
firewall-cmd --zone=public --list-ports