Redis主从+哨兵集群(基于CentOS-8.0)高可用部署方案

发布时间:2024年01月16日

目录

一、环境描述

二、Redis 主从集群部署

2.1 Redis下载

2.2 Redis解压 和移动文件

2.4 编译、安装Redis

2.6 新建 bin 和 etc 文件夹

2.7 分发Redis

2.8 配置

2.8.1 主节点配置

2.8.2 从节点配置

2.9 启动Redis服务

2.10 验证主从服务

2.11 查看节点角色信息

2.12 查看节点信息

2.13 测试发送信息

三、Redis 哨兵集群部署

3.1 哨兵配置

3.2 启动哨兵

3.3 哨兵检查、容灾切换验证

3.3.1登录redis

3.3.2查看哨兵指令

3.3.3 容灾切换测试

3.3.3.1 登录主节点

3.3.3.2 关闭redis

3.3.3.3 ?登录进入一台从节点

3.3.3.4 查看新的集群信息


提示:对Redis 主从架构、哨兵机制等技术原理不清楚的,可先参考阅读我的技术博客《Redis主从/哨兵机制原理介绍》

一、环境描述

系统环境描述:本教程基于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角色。

经过以上验证,我们发现哨兵机制起了作用,和预期相符合,哨兵机制部署成功!

好了,本次分享就到这里,欢迎大家继续阅读《Redis》专栏其他文章内容,如果有帮助到大家,欢迎大家点赞+关注+收藏,有疑问也欢迎大家评论留言!

文章来源:https://blog.csdn.net/qq_25409421/article/details/135626455
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。