基于Docker快速搭建Redis-Sentinel集群及哨兵模式配置指南

创始人
2024-12-31 12:16:45
0 次浏览
0 评论

基于Docker搭建Redis-Sentinel哨兵模式集群教程

Sentinel模式是Redis集群的高级配置方案,结合了主从复制机制和Sentinel监控功能,实现集群高可用。
Sentinel对主节点进行监控,一旦检测到主节点出现异常,就会自动触发故障恢复流程,保证数据的连续性。
在Sentinel工作流程中,“SentinelMonitor”用于在配置文件中指定主节点的IP和端口,以监控多个主节点。
Sentinel启动后,会与主节点建立两条连接,监控实时状态。
主节点发生故障后,哨兵启动故障恢复流程,并使用Raft算法选举主导哨兵。
领导哨兵选出失效主节点的一个从节点,将其提升为新的主节点,并通知其他从节点跟随新的主节点完成数据同步。
旧主节点更新为从节点,服务恢复。
基于Docker创建Redis-Sentinel集群教程首先,在一台机器上创建一个网络环境。
然后创建一个主节点容器和两个从节点容器。
通过检查主节点IP(sentinel配置文件中使用的),新建配置文件`sentinel.conf`并配置主节点信息。
然后创建一个哨兵容器来监控主从节点。
来验证这一点要检查集群是否创建成功,可以连接任意一个master节点,执行INFOreplication命令,输入INFOsentinel查看sentinel状态。
至此,一个基于Docker的Redis-Sentinel集群就创建完成了,保证了系统的高可用和数据的一致性。

Linux下安装配置redis详细教程,并配置哨兵模式

Redis版本是redis-3.2.12。
使用该工具将安装包上传到data目录。

在给定目录中创建Redis文件夹并在此目录中安装Redis。

第一步:解压。

第二步:安装,PREFIX=/data/redis用于设置安装目录。

至此,Redis已经安装完毕,剩下的就是配置和启动服务了。

进入redis目录,创建conf配置文件、log日志、数据库dump、pid进程ID四个目录,存放对应的文件。
这四个目录也可以存放在其他文件夹中,只要它们与配置文件中的配置必须一致,否则服务启动时会报错。
bin目录包含Redis安装成功后的一些命令文件。

Redis服务配置为一主两从,哨兵模式。
注:如果实际开发中不使用哨兵模式,Redis服务可以配置一主一从。

主Redis配置:redis_6379.conf

注意:如果只使用Redis服务,只需在主Redis中配置requirepass,在从Redis中配置masterauth。
密码必须一致。
尽可能复杂,以避免被攻击。

注意:只是为了使用Redis服务,如果需要给Redis从机添加登录验证,也可以设置requirepass,密码可以与Redis主密码不同。

将配置文件放在/data/redis/conf目录下,然后启动服务。

检查服务的启动状态:

您还可以通过查看日志文件来确认服务是否正常启动。

通过客户端登录Redis,检查数据同步:

检查RedisMaster访问,设置数据:

从Redis登录,获取数据:Redis中没有数据设置密码,以便您无需验证即可操作。

配置sentinel模式:

RedisSentinel集群通常由3到5个节点组成。
如果单个节点发生故障,集群仍能正常运行。
Sentinel负责监控Redis集群的健康状况。

关于配置sentinel.conf:

将配置文件放在/data/redis/conf目录下,启动sentinel服务:

检查sentinel是否为功能启动后,可以手动关闭主Redis。

此时,如果Redis从机想要访问Redis主机的同步数据,则会显示错误信息:

检测到Redis主机宕机后,sentinel通过选举新的主Redis来选择从Redis。
通过查看sentinel寄存器,我们可以发现6380被选为新的Redismaster,另外两台Redis被选为RedisSlave。

注意:选择6380作为Redismaster后,所有配置文件都会被修改,主要是重新建立主从关系。

6379将添加:slaveof127.0.0.16380

6380将删除:slaveof127.0.0.16379

6381将更改:slaveof127.0.0.16380

6381将更改:slaveof127.0.0.16380

由于6379服务已经关闭,虽然Sentinel使用6379作为从服务6380,实际上还没有成立。

重启服务6379,此时Sentinel会重建并建立主从关系:

热门文章
1
高效掌握:CMD命令轻松启动、关闭及登录... 如何用cmd命令快速启动和关闭mysql数据库服务开发中经常使用MySQL数据库...

2
MySQL分区删除技巧与8.0版本新特性... mysql删除分区在MySQL中,删除分区操作主要使用“可替代”的命令与“ dr...

3
Python代码实现:如何判断三角形的三... python三角形三条边长,判断能否构成三角形Python三角形的三个长边如下:...

4
深度解析:MySQL查询语句执行顺序及优... mysql查询语句执行顺序当这是由于执行SQL的过程时,了解其过程很重要。 ...

5
SQL教程:使用SUBSTRING和IN... sql取特定字符的前面几位字符selectsubstr('L-0FCLDRBCT...

6
MySQL日期差异计算方法:轻松获取日期... MySQL计算时间差两日期相减得月份mysql两时间相减得月MySQL计算时间之...

7
MySQL及SQL查询获取前10条数据方... MySql查询前10条数据sql语句是从MySQL获取前1 0个数据的SQL查询...

8
MySQL启动问题排查与解决指南 Mysql为什么启动不了如果要配置MySQL,则遇到无法启动的问题,可能是由于配...

9
DbVisualizer添加MySQL数... 如何在DbVisualizer中添加本地mysql数据库由于DbVisualiz...

10
SQL字段默认值设置全攻略:轻松实现自动... sql如何设置字段默认值设置SQL中某个字段的默认值;需要遵循几个步骤。首先您需...