一、环境描述
系统环境描述:本教程基于CentOS 8.0版本虚拟机
集群规划信息:
Redis版本:7.2.3
二、Redis 主从集群部署
2.1 Redis下载
官网:Download | Redis
2.2 Redis解压 和移动文件
tar -zxvf redis-7.2.3.tar.gz
mv redis-7.2.3 /usr/local/
2.4 编译、安装Redis
cd /usr/local/redis-7.2.3
make
cd src/
make install
2.6 新建 bin 和 etc 文件夹
cd /usr/local/redis-7.2.3
mkdir etc
mkdir bin
cp redis.conf sentinel.conf /etc/
cd src/
cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server redis-sentinel /usr/local/redis-7.2.3/bin/
2.7 分发Redis
scp -r redis-7.2.3/ root@node3:/usr/local/
scp -r redis-7.2.3/ root@node4:/usr/local/
2.8 配置
2.8.1 主节点配置
vim redis.conf
bind 0.0.0.0
port 6379
protected-mode no
daemonize yes
logfile ./redis.log
requirepass xiaoning
masterauth xiaoning
2.8.2 从节点配置
vim redis.conf
bind 0.0.0.0
port 6379
protected-mode no
daemonize yes
logfile ./redis.log
requirepass xiaoning
masterauth xiaoning
replicaof 192.168.31.215 6379
2.9 启动Redis服务
./redis-server ../etc/redis.conf
2.10 验证主从服务
2.11 查看节点角色信息
#登录redis
./redis-cli -c --pass xiaoning
#查看节点角色信息
role
2.12 查看节点信息
#登录redis
./redis-cli -c --pass xiaoning
#查看主从节点信息
info replication
2.13 测试发送信息
主节点:
set name xiaoning
从节点:
get name
ok ,从以上测试结果来看,我们的主从(Master-Slave模式)部署完成,下面继续介绍哨兵机制部署。
三、Redis 哨兵集群部署
3.1 哨兵配置
cd etc/
vim sentinel.conf
#端口默认为26379。
port 26379
#关闭保护模式,可以外部访问。
protected-mode no
#设置为后台启动。
daemonize yes
#日志文件。
logfile ./sentinel.log
#指定主机IP地址和端口,并且指定当有2台哨兵认为主机挂了,则对主机进行容灾切换。
sentinel monitor mymaster 192.168.31.215 6379 2
#当在Redis实例中开启了requirepass,这里就需要提供密码。
sentinel auth-pass mymaster xiaoning
#这里设置了主机多少秒无响应,则认为挂了。
sentinel down-after-milliseconds mymaster 3000
#主备切换时,最多有多少个slave同时对新的master进行同步,这里设置为默认的1。
sentinel parallel-syncs mymaster 1
#故障转移的超时时间,这里设置为三分钟。
sentinel failover-timeout mymaster 180000
3.2 启动哨兵
./redis-sentinel ../etc/sentinel.conf
3.3 哨兵检查、容灾切换验证
3.3.1登录redis
redis-cli -c -p 26379
3.3.2查看哨兵指令
info sentinel
3.3.3 容灾切换测试
3.3.3.1 登录主节点
./redis-cli -c --pass xiaoning
3.3.3.2 关闭redis
#关闭redis,模拟redis宕机
shutdowm
#d等一分钟,然后重新启动该节点redis服务
./redis-server ../etc/redis.conf
我们发现,执行shutdown 命令后,该服务器的redis服务已经停了。
3.3.3.3 登录进入一台从节点
./redis-cli -c --pass xiaoning
3.3.3.4 查看新的集群信息
#查看该节点角色
role
#查看节点信息
info replication
我们可以看到,master节点由原来的192.168.31.215,变成了192.168.31.167。
我们重新启动原来master节点的redis服务,登录后,查看信息发现,它由原来的redis master角色,变成了的slave角色。
经过以上验证,我们发现哨兵机制起了作用,和预期相符合,哨兵机制部署成功!