redis哨兵模式
Redis哨兵模式配置指南 本文详细介绍了Redis哨兵模式的配置过程,主要包含以下内容: 哨兵模式作用:自动监控主从集群,实现故障转移和主从切换,避免人工干预。 环境配置: 主Redis服务器:192.168.100.10 两个从服务器:192.168.100.20/30 哨兵服务器:192.168.100.40(运行三个哨兵实例) 关键配置步骤: 主从服务器配置:修改redis.conf文件,
配置redis 哨兵模式
哨兵模式概述
当我们的主服务器宕机后,要手动的去切换主从模式,这样的人工干预,费事费力,还会造成一段时间我们的服务不能使用。所有我们要使用哨兵模式来解决这一问题。
手动设置主从:
当主服务器down 掉后 服务器不在提供写功能,需要手动将从服务器设置为主
在从服务器上使用命令:
slaveof on one //从服务器关闭复制功能转为主服务器 原同步所得数据不丢失
在其他从服务器上执行命令
slaveof host port //host 指定转为主的从服务器地址 port 指定端口号
哨兵是对Redis的系统的运行情况的监控,它是一个独立进程。
哨兵模式作用
监控主机Redis和从机Redis是否运行正常;
主机Redis出现故障后自动将从机转化为主机;
哨兵功能
集群监控:负责监控主从集群中的Master和Slave进程是否正常工作。
故障转移(failover):如果Master宕机,会自动从Slave中选举出新的Master,进行主从自动切换。
配置中心:如果发生了故障转移,Sentinel负责通知客户端新的Master的地址。
消息通知:如果某个redis节点有故障,那么Sentsinel会发送报警消息给系统管理员
哨兵工作原理
单个哨兵的工作原理:
哨兵模式配置 (一主两从 三哨兵)
环境:
主redis 主机名 redis.m 网卡 vm1 地址 192.168.100.10
从redis 主机名 redis.s1 网卡 vm1 地址 192.168.100.20
从redis 主机名 redis.s2 网卡 vm1 地址 192.168.100.30
哨兵sentinel 主机名 redis.sen 网卡 vm1 地址 192.168.100.40 (一台主机三哨兵)
四台主机相同配置部分:
禁用 selinux 关闭防火墙 yum 安装redis 环境 源码安装 redis
redis 安装路径 统一 /usr/local/redis
一,配置一主两从
主 redis 配置文件修改部分
|
#bind 127.0.0.1 #将bind注释掉 或 bind 0.0.0.0 75 protected-mode no #允许远程主机访问 94 daemonize yes #修改服务为后台运行 259 logfile "/usr/local/redis/log/redis.log" #指定log日志路径 304 dir ./data/redis #这个指定rdb文件和aof文件的路径配置,要求改成不同。 456 masterauth 123 #从服务到主服务的认证密码。 486 requirepass 123 #三份文件都配置,客户端访问需要密码验证。 903 |
从 s1, s2 配置文件修改
|
#bind 127.0.0.1 protected-mode no #允许远程主机访问 94 daemonize yes logfile "/usr/local/redis/log/redis.log" dir ./data/redis replicaof 192.168.100.10 6379 #从服务配置需要开启。配置主服务的ip的port。 479 masterauth 123 requirepass 123 |
二,在 主redis 和 两台从服务器上创建日志文件夹和数据文件夹
cd /usr/local/redis
mkdir log
mkdir -p data/redis
三, 分别开启三台redis 的服务
cd /usr/local/redis
./src/redis-server redis.conf
查看服务是否开启
netstat -anpt | grep redis //如果没有命令用yum 安装



四,配置 哨兵主机
三哨兵需要一台主机启用三个哨兵模式 需要三个哨兵配置文件
cd /usr/local/redis
mv sentinel.conf sentinel1.conf
cp sentinel1.conf sentinel2.conf
cp sentinel1.conf sentinel3.conf
修改配置三个配置文件如下
sentinel1.conf
|
bind 0.0.0.0 #服务监听地址,用于客户端连接,默认本机地址 daemonize yes 26 protected-mode no #安全保护模式 port 26379 #哨兵端口 logfile "/usr/local/redis/log/sentinel1.log"" #日志文件路径 36 pidfile /var/run/redis-sentinel1.pid #pid文件路径 dir /tmp #工作目录 sentinel monitor mymaster 192.168.100.10 6379 2 #设置要监控的master服务器,quorum表示最少有几个哨兵认可客观下线,同意故障迁移的法定票数 sentinel auth-pass mymaster 123456 #master设置了密码,连接master服务的密码 86行 |
sentinel2.conf
|
bind 0.0.0.0 daemonize yes protected-mode no port 26380 logfile "/usr/local/redis/log/sentinel2.log"" pidfile /var/run/redis-sentinel2.pid dir /tmp sentinel monitor mymaster 192.168.100.10 6379 2 sentinel auth-pass mymaster 123456 |
sentinel3.conf
|
bind 0.0.0.0 daemonize yes protected-mode no port 26381 logfile "/usr/local/redis/log/sentinel3.log"" pidfile /var/run/redis-sentinel3.pid dir /tmp sentinel monitor mymaster 192.168.100.10 6379 2 sentinel auth-pass mymaster 123456 |
五, 创建存放日志的文件夹并启动三个哨兵服务
cd /usr/local/redis
mkdir log
./src/redis-sentinel sentinel1.conf --sentinel
./src/redis-sentinel sentinel2.conf --sentinel
./src/redis-sentinel sentinel3.conf --sentinel
查看端口号

六,查看 几个哨兵的日志文件
cat log/sentinel.log
七,down 掉 主redis 服务器 验证哨兵作用
在 主 redis 服务器上关闭redis 服务 或者杀死 redis 进程
关闭服务

杀死进程
cd /var/run/
ls //查看redis 进程文件
cat redis_6379.pid //通过进程文件查看进程号
kill -9 20504 //杀死进程
rm -rf redis_6379.pid //删除进程文件
八,查看哨兵日志哪台从服务器可以写入数据 变成了主redis
cat log/sentinel1.log

进入新的 主服务器 测试写入数据
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)