Redis一主二从Sentinel监控配置

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云防火墙,500元 1000GB
简介: Redis一主二从Sentinel监控配置

一、环境准备

Redis一主二从Sentinel监控配置如下:

  1. 3个Sentinel实例(奇数个,选择Leader)
  2. Redis服务(一主二)。

服务器资源有限的朋友们,可以通过VMware启动虚拟机的方式来构建环境,关于如何使用VMware安装虚拟机,网络配置、克隆、单实例Redis的安装在我的博文中都有保姆级教程,需要的请自取。


资源清单:

IP地址

节点角色

端口

192.168.211.104

Redis Master/ Sentinel

6379/26379

192.168.211.105

Redis Slave/ Sentinel

6379/26379

192.168.211.106

Redis Slave/ Sentinel

6379/26379

关闭防火墙:

由于是自己学习使用,我们不针对专门的端口最策略(在公司这一块有专门的运维同时来做),这里我们直接关闭服务器的防火墙(三台都需要关闭)

systemctl status firewalld.service    # 查看防火墙状态

systemctl stop firewalld.service     # 停止防火墙(重启后会失效)

systemctl disable firewalld.service    # 禁止开机启动

效果图,不会的朋友可以参考一下


整体架构简图

二、配置一主二从

这里的Redis的主节点是192.168.211.104,所以我们在192.168.211.105和192.168.211.106的Redis配置文件中,配置replicaof指向的Master IP +port。

配置文件在Redis的安装目录:

编辑redis.conf配置文件:

vim redis.conf

redis.conf配置文件中默认注释:

# replicaof <masterip> <masterport>

取消注销,配置为Master的IP + port:

replicaof 192.168.211.104 6379

三、哨兵配置

单机节点实例下,Redis的安装目录默认有sentinel.conf配置文件,先对文件进行备份,备份文件名为sentinel.conf.copy(自定义):

cp sentinel.conf sentinel.conf.copy

创建日志等相关文件:

cd /usr/local/soft/redis-6.2.4/

mkdir logs

mkdir rdbs

mkdir sentinel-tmp # sentinel的工作目录,下面有说明


三台机器分别修改sentinel.conf的配置文件内容如下(内容都相同):

daemonize yes

port 26379

protected-mode no

dir "/usr/local/soft/redis-6.2.4/sentinel-tmp"

sentinel monitor redis-master 192.168.211.104 6379 2

sentinel down-after-milliseconds redis-master 30000

sentinel failover-timeout redis-master 180000

sentinel parallel-syncs redis-master 1


上述配置详细解读:

配置项

作用

daemonize

后台启动,与Redis一致,yes表示后台启动

port

端口 26379

protected-mode

开启外网访问保护模式,no表示关闭,这样外网可以访问

dir

Sentinel工作目录

sentinel monitor

Sentinel 监控的Redis主节点

sentinel failover-timeout

1、同一个sentinel对同一个master两次failover之间的间隔时间

2、当一个slave从一个错误的master那里同步数据开始计算时间。直到slave被纠正为向正确的master那里同步数据时

3、当想要取消一个正在进行的failover所需要的时间。

4、当进行failover时,配置所有slaves指向新的master所需的最大时间

sentinel parallel-syncs

这个配置项指定了在发生failover主备切换时最多可以有多少个slave同时对新的master进行 同步,这个数字越小,完成failover所需的时间就越长,但是如果这个数字越大,就意味着越 多的slave因为replication而不可用。可以通过将这个值设为 1 来保证每次只有一个slave 处于不能处理命令请求的状态。

四、服务启动

上述就已经完成了Redis一主二从集群和3个Sentinel实例的监控的配置,接下来就是启动Redis和Sentinel

4.1 启动redis

进入Redis安装目录下的src目录:

cd /usr/local/soft/redis-6.2.4/src

启动Redis服务(也可以配置别名启动,需要的请看我的Redis单机实例安装教程):

./redis-server ../redis.conf



4.2 启动Sentinel

启动目录与Redis启动目录相同,在Redis安装目录下的src目录

方式一:

./redis-sentinel ../sentinel.conf

方式二:

./redis-server ../sentinel.conf --sentinel



4.3 查看集群状态

进入Redis客户端,通过info replication查看集群状态:

info replication


rcli是我配置的别名启动,不懂的请看我的单节点实例部署的博文,或者给我留言我会及时回复的,如上图我们可以看到集群没什么问题,接下来还需要测试Sentinel

五、测试

通过宕机的方式来测试Sentinel是否有效,我们在主节点192.168.211.104上,连接Redis执行shutdown:

shutdown


此时我们的192.168.211.105 slave节点被选举成为新的,master,证明sentinel部署成功:



最后我们将shutdown的192.168.211.104节点重新启动,再次查看Redis的集群情况


我们发现192.168.211.104重启后,成为了一个新的slave节点,此时的master节点仍然时192.168.211.105.

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
打赏
0
0
0
0
10
分享
相关文章
【赵渝强老师】监控Redis
Redis 实例的监控是运维管理中的关键内容,主要包括内存、吞吐量、运行时信息和延时的监控。 1. **监控内存**:使用 `info memory` 可查看 Redis 内存使用情况,包括已用内存、峰值内存等。 2. **监控吞吐量**:通过 `info stats` 获取每秒处理命令数(OPS)、网络输入输出流量等。 3. **监控运行时信息**:利用 `info` 命令结合 `grep` 过滤出客户端连接数、拒绝连接数等重要信息。 4. **监控延时**:可以通过客户端手动监控或服务器内部延迟监控来检测延时问题。
NoSQL与Redis配置与优化
通过合理配置和优化Redis,可以显著提高其性能和可靠性。选择合适的数据结构、优化内存使用、合理设置持久化策略、使用Pipeline批量执行命令、以及采用分布式集群方案,都是提升Redis性能的重要手段。同时,定期监控和维护Redis实例,及时调整配置,能够确保系统的稳定运行。希望本文对您在Redis的配置与优化方面有所帮助。
79 23
NoSQL与Redis配置与优化
通过合理配置和优化Redis,可以显著提高其性能和可靠性。选择合适的数据结构、优化内存使用、合理设置持久化策略、使用Pipeline批量执行命令、以及采用分布式集群方案,都是提升Redis性能的重要手段。
61 7
2024Mysql And Redis基础与进阶操作系列(1)作者——LJS[含MySQL的下载、安装、配置详解步骤及报错对应解决方法]
Mysql And Redis基础与进阶操作系列(1)之[MySQL的下载、安装、配置详解步骤及报错对应解决方法]
Redis Sentinel:秒杀系统背后的可靠性保障神器!
本文详细介绍了如何在个人项目中利用 Redis 哨兵模式保障系统的可靠性与高可用性。哨兵模式通过监控主从服务器状态、自动故障转移和通知客户端等功能,确保在主服务器宕机时系统仍能正常运行。适用于读请求多于写请求的场景,如秒杀系统,能有效缓解数据库压力。同时也探讨了哨兵模式在高并发场景下的优化方法及潜在缺陷,帮助开发者更好地应用该模式。
108 7
Redis Sentinel:秒杀系统背后的可靠性保障神器!
|
5月前
|
Redis 配置
10月更文挑战第14天
67 1
Redis Sentinel(哨兵)详解
Redis Sentinel(哨兵)详解
263 4
大数据-46 Redis 持久化 RDB AOF 配置参数 混合模式 具体原理 触发方式 优点与缺点
大数据-46 Redis 持久化 RDB AOF 配置参数 混合模式 具体原理 触发方式 优点与缺点
107 1
大数据-116 - Flink DataStream Sink 原理、概念、常见Sink类型 配置与使用 附带案例1:消费Kafka写到Redis
大数据-116 - Flink DataStream Sink 原理、概念、常见Sink类型 配置与使用 附带案例1:消费Kafka写到Redis
318 0
|
5月前
|
redis的基本安装配置启动使用
redis的基本安装配置启动使用
74 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等