Redis集群三种模式详解:主从、Vigilance与分片部署策略

创始人
2024-12-20 06:55:37
0 次浏览
0 评论

Redis三种集群模式

主从模式简介主从模式是一个主节点和多个从节点。
主节点通过配置文件启动,从节点通过配置文件启动。
主服务器模式可以实现数据读写分离,但缺点是不具备灾难自动恢复的能力。
Vigilance模式概述Vigilance模式监控三个警戒节点中的一个主节点和两个从节点。
每次节点监视时,它都会向集群中的每个节点发送PING命令以检测实例的当前状态。
如果实例没有响应PING命令,Vigil会主观地将其标记为离线(SDOWN)。
如果确认多个观察节点主观离线,则会记录客观离线(ODOWN)实例,然后切换主服务器节点以维持集群稳定性。
警察模式的自动容灾机制可以满足主从节点的可用性要求,但在大型集群中进行在线扩展时会面临挑战。
分片概述RedisCluster是Redis提供的一项技术,从Redis3.0版本开始支持。
它还通过下载槽将数据分布到多个Redis服务器上,以提高存储效率并减少内存和磁盘资源的浪费。
每个下载槽对应一个Redis服务器。
通过CRC16计算出键值并取出参数,将数据存储在合适的服务器中,进行分布式数据存储。
该步骤开始部署所有节点,在配置文件中添加集群模式,并使用集群模式配置三个主节点和从节点,保证集群的正常运行。
通过设置模块--clusterreplicas1,每个插槽都由主节点和服务器节点负责。
识别数据读写操作并测试集群中节点之间切换的能力。
主节点出现故障后,从节点自动接替主节点的角色进行数据复制和管理。
在不同分区之间移动数据,保证集群内数据的一致性。
当添加新节点、部署新节点时,集群会自动部署数据壳,并在新节点上分发数据。
新节点加入集群后,根据数据修补规则接收数据,实现集群扩容。
数据迁移和节点管理在迁移数据分区时,集群会自动将数据从一个节点移动到另一个节点,以保证集群中数据的均匀分布。
当需要删除某个节点时,先将数据迁移到其他节点,然后再删除该节点。
主服务器性能测试在测试中表现良好,处理节点能力达到6万QPS。
分片模式下,虽然分片提高了数据存储的效率,但LRange操作受到一定影响,导致整体QPS比服务器模式略低。
利用Pipeline技术将多个操作合并为一个请求,QPS提升至90万,提高了性能效率。
总结Redis集群模式包括Sunday模式、Watch模式和Scatter模式。
主从模式实现了数据读写分离,但不具备广泛的容灾能力;Vigilance模式通过自动化设备实现高可用性和灾难恢复,但在大型集群中可能存在部署挑战;通过数据分片提高存储效率,减少资源浪费。
了解并应用不同的集群方法可以有效提高Redis系统的可靠性和性能。

Redis集群配置

Redis集群实现了Redis的水平扩展。
通过启动N个Redis节点,每个节点存储总数据的1/N。
集群通过分区提供一定程度的可用性。
即使集群中的某些节点发生故障或无法通信,集群也可以继续处理请求命令。
集群中的所有Redis节点相互互连(PING-PONG机制),内部使用二进制协议来优化传输速度和带宽。
Redis集群内置了16384个哈希槽。
当Redis集群中需要放置一个key-value时,Redis首先使用crc16算法为该key计算一个结果,然后将结果求余到16384,这样每个key对应一个编号为hash的槽在0-16383之间,Redis会根据节点数量大致均等地将哈希槽映射到不同的节点。
Redis集群的高可用体现在以下几个方面:1、集群中某个节点的主节点宕机后,其从节点自动提升为主节点,集群继续提供服务;2、当一个节点下的所有Redis宕机后,集群关闭后,集群将不可用;3、当故障节点恢复后,集群自动恢复正常;4.即使集群一半宕机,只要哈希槽完好,集群仍然可以正常工作。
Redis集群的资源配置示例如下:在CentOSLinux版本7.3.1611(Core)系统上,部署4个Redis节点,端口号分别为6379、6380、6381、6382。
Redis集群包括:安装依赖(使用yum安装ruby和rebygems)、安装Redis和Ruby接口(使用gem安装redis)、安装并初始化Ruby版本,修改redis.conf,复制配置到其他节点,启动Redis实例,开启防火墙,创建集群,验证集群,关闭集群。
部署Redis集群时,需要注意以下问题:1、Redis集群总线端口为Redis客户端端口加10000。
例如客户端通信端口为6379,则集群总线端口为16379;2、配置防火墙时,需要为集群总线端口和客户端端口启用对应的永久端口规则。
验证集群搭建成功的方法包括:通过redis-cli连接集群主节点,执行命令查看集群信息、节点列表、节点状态、键槽、槽内键值对数量等。
关闭集群后,需要在每个节点上执行shutdown命令。
添加主节点或从节点涉及启动节点、将节点添加到集群以及分配哈希槽,而删除节点则涉及删除从节点和主节点。
热门文章
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中某个字段的默认值;需要遵循几个步骤。首先您需...