redis--生产环境搭建--04--哨兵模式的安装和配置

redis–生产环境搭建–04–哨兵模式的安装和配置


前提

使用hd用户登陆
完成基础环境搭建
	https://blog.csdn.net/zhou920786312/article/details/118212302

一、机器

在这里插入图片描述

  1. 如果设置Redis服务访问密码,各主从节点、哨兵节点都必须设置相同密码。

  2. redis哨兵模式通过检测主从redis节点的健康状态,发现主节点故障后能发通知、从节点主动接管,实现故障自动切换,从而实现redis的高可用。

  3. 哨兵节点个数必须为奇数,至少要有1个节点;

    1. 如果需要哨兵节点的高可用,至少要有3个哨兵节点。
    2. 因此在生产环境使用时,哨兵节点加上主从节点,实现高可用至少需要5个节点。
  4. 本文以在同一机器机安装5个节点为例说明,其中3个为哨兵节点:监听端口为26379、26380、26381,1个为主节点:监听端口为6379,1个为从节点:监听端口为6380。

二、安装配置各节点redis服务

2.1、redis主从节点

参考:redis–生产环境搭建–03–主从模式的安装和配置

2.2、哨兵节点

2.2.1、安装哨兵节点Redis服务

  1. 分别为三个哨兵节点安装redis服务,服务端口分别设置为:26379、26380、26381
  2. 安装方法参见单节点方式安装和配置中的安装redis在不同端口
cd /home/hd/redis-6.2.6



sudo REDIS_PORT=26379 REDIS_CONFIG_FILE=/etc/redis/26379.conf  REDIS_LOG_FILE=/var/log/redis_26379.log  REDIS_DATA_DIR=/var/lib/redis/26379  REDIS_EXECUTABLE="command -v redis-server"  ./utils/install_server.sh


sudo REDIS_PORT=26380 REDIS_CONFIG_FILE=/etc/redis/26380.conf  REDIS_LOG_FILE=/var/log/redis_26380.log  REDIS_DATA_DIR=/var/lib/redis/26380  REDIS_EXECUTABLE="command -v redis-server"  ./utils/install_server.sh

sudo REDIS_PORT=26381 REDIS_CONFIG_FILE=/etc/redis/26381.conf  REDIS_LOG_FILE=/var/log/redis_26381.log  REDIS_DATA_DIR=/var/lib/redis/26381  REDIS_EXECUTABLE="command -v redis-server"  ./utils/install_server.sh


# 安装路径
/usr/local/bin/redis-server
# 查看redis 服务
ps -ef | grep redis 

2.2.2、停止哨兵节点redis服务

sudo /etc/init.d/redis_26379 stop
sudo /etc/init.d/redis_26380 stop
sudo /etc/init.d/redis_26381 stop

2.2.3、调整哨兵节点配置

01、调整哨兵节点1

准备哨兵配置文件,输入以下命令

sudo cp ./sentinel.conf /etc/redis/26379.conf

编辑配置文件/etc/redis/26379.conf

sudo vim /etc/redis/26379.conf

修改内容

port 26379 
# 用守护线程的方式启动,redis会在后台运行
daemonize yes
pidfile /var/run/redis_26379.pid
logfile /var/log/redis_26379.log
dir /var/lib/redis/26379

# 192.168.187.139和6388应该根据实际情况设置为redis主节点的ip和实际端口,
# 此处为本机和缺省端口 
sentinel monitor appmaster 192.168.187.139 6388 2



sentinel down-after-milliseconds appmaster 10000
sentinel failover-timeout appmaster 180000
sentinel parallel-syncs appmaster 1


# 如果需要本机以外访问redis服务,需要绑定0.0.0.0,在文件尾增加以下行
bind 0.0.0.0
# 设置访问密码
sentinel auth-pass appmaster 123456

解释

1. sentinel monitor <master-name> <ip> <redis-port> <quorum>
	1. 告诉sentinel去监听地址为ip:port的一个master
	2. master-name:可以自定义
	3. quorum:是一个数字,指明当有多少个sentinel认为一个master失效时,master才算真正失效
	4. master-ip:要写真实的ip地址而不要用回环地址(127.0.0.1)。


2. down-after-milliseconds:
	1. 参数指定了哨兵检查主redis时不回应的时间期限, 超过该时间不回应就认为主redis不可用
	2. 单位毫秒。
	3. 实际部署需要根据切换时间要求来设置。

3. failover-timeout
	1. 表示多个哨兵做主从切换时,一个执行失败了,另一个执行需要等待的时间,保证两个哨兵只能依次执行切换操作
	2. 单位毫秒
	3. 实际部署需要根据切换时间要求来设置。

4. parallel-syncs
	1. 新的master切换之后,同时有多少个slave被切换到去连接新master,重新做同步
	2. 数字越低,花费的时间越多。
		1. 假设你的redis是1个master,4个slave,然后master宕机了,4个slave中有1个切换成了master,剩下3个slave就要挂到新的master上面去。
			1. 如果parallel-syncs是1,那么3个slave,一个一个地挂接到新的master上面去,1个挂完,而且从新的master sync完数据之后,再挂接下一个。
			2. 如果parallel-syncs是3,那么一次性就会把所有slave挂接到新的master上去。


02、按照以上步骤01,依次调整其它两个哨兵节点的配置,注意其中使用26379端口号的地方都需要换成对应哨兵的端口号。

2.2.4、修改哨兵节点启动脚本

01、修改哨兵节点1启动脚本

编辑/etc/init.d/redis_26379

sudo vim /etc/init.d/redis_26379

找到以下项

$EXEC $CONF

修改为

$EXEC $CONF --sentinel
02、按照以上步骤01,依次调整其它两个哨兵节点的启动脚本,注意其中使用26379端口号的地方都需要换成对应哨兵的端口号

启动哨兵节点redis服务

sudo /etc/init.d/redis_26379 start
sudo /etc/init.d/redis_26380 start
sudo /etc/init.d/redis_26381 start

ps -ef | grep redis

在这里插入图片描述

三、验证

3.1、发现主节点故障后,实现故障自动切换

6388主节点挂机

127.0.0.1:6388> shutdown
not connected>
6389从节点自动切换为主节点
info Replication

在这里插入图片描述

6389节点的配置发生改变

在这里插入图片描述

6388重启,变为从节点,且配置自动发生改变

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值