基于Docker快速搭建Redis-Sentinel集群及哨兵模式配置指南
基于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会重建并建立主从关系: