redis哨兵集群部署
1、原理
Redis 哨兵模式是指在 Redis 集群中,有一组专门的进程(即哨兵进程)负责监控主节点和从节点的状态,并在发现故障时自动进行故障转移,以保证 Redis 集群的高可用性。
Redis 提供了哨兵的命令,哨兵命令是一个独立的进程,哨兵进程会周期性地向主节点和从节点发送 PING 命令来检测它们的状态,当哨兵进程发现 master主节点 不可用时,根据投票数自动将某一个 slave 转换 master,然后通过消息订阅模式通知其它 slave,让它们切换到新的 master主节点 上,从而实现故障转移。然而,一个哨兵进程对 Redis 服务器进行监控,可能会出现问题,为此,我们可以使用多哨兵进行监控。哨兵进程还可以监控 Redis 集群的配置变化,并在配置变化时通知客户端进行相应的调整。
哨兵模式三大任务:
- 监控
- 提醒
- 自动故障迁移
下载redis安装包
2、搭建示例
2.1、在同一台服务器上搭建三台 Redis 服务
1、编译redis
解压目录并编译安装
tar xf redis-7.2.4.tar.gz && cd redis-7.2.4/
make && make install
解压安装包
执行make命令
2、创建配置文件
创建配置文件目录
mkdir -p /data/businessServer/redis6379
mkdir -p /data/businessServer/redis6380
mkdir -p /data/businessServer/redis6381
提供三份 Redis 配置文件:`redis6379.conf`、`redis6380.conf`、`redis6381.conf`
80和81的配置文件是slave配置文件,所以会和79有所区别
cat >/data/businessServer/redis6379/redis6379.conf<<'EOF'
# bind 127.0.0.1
port 6379
daemonize yes
logfile /data/businessServer/redis6379/redis6379.log
requirepass '1qaz!QAZ'
# 当master设置了密码保护时,slave服务连接master的密码
masterauth '1qaz!QAZ'
dir /data/businessServer/redis6379/
pidfile /var/run/redis_6379.pid
dbfilename dump6379.rdb
EOF
cat >/data/businessServer/redis6380/redis6380.conf<<'EOF'
# bind 127.0.0.1
port 6380
daemonize yes
logfile /data/businessServer/redis6380/redis6380.log
requirepass '1qaz!QAZ'
# 当master设置了密码保护时,slave服务连接master的密码
master