深入解析Redis集群三种模式:主从、哨兵与分片技术

创始人
2024-12-16 05:29:37
0 次浏览
0 评论

Redis三种集群模式

主/从模式概述主/从模式由一个主节点和多个从节点组成。
从节点只读取数据。
主节点通过配置文件启动,从节点也通过配置文件启动。
主从关系在启动时自动建立。
主从模式可以实现数据读写分离,但缺点是不具备自动容灾功能。
Sentinel模式概述Sentinel模式通过3个Sentinel节点监控1个主节点和2个从节点。
每个哨兵节点每秒都会向集群中的所有节点发送PING命令,以发现实例的运行状态。
如果实例不响应PING命令,Sentinel会将该实例标记为主观离线(SDOWN)。
如果观察到大多数哨兵节点主观离线,则将实例标记为客观离线(ODOWN),并切换主从节点以确保集群稳定性。
Sentinel模式的自动容灾机制虽然可以满足主从节点的高可用需求,但在大型集群上进行在线扩容时可能会出现问题。
分片概述RedisCluster是Redis提供的分片技术,在Redis3.0及更高版本中支持。
通过哈希槽将数据均匀分布在多个Redis服务器上,提高存储效率,减少内存和磁盘资源的浪费。
每个哈希槽对应一个Redis服务器,通过CRC16计算键值,得到系数,将数据存储在对应的服务器中,实现数据的分布式存储。
部署步骤启动所有节点,在配置文件中添加集群模式,并使用集群模式部署三个主从节点,保证集群正常运行。
如果设置参数--cluster-replicas1,则每个哈希槽由一个主节点和一个从节点管理。
验证数据读写操作并测试集群中节点之间的切换功能。
如果主节点出现故障,从节点会自动接管主节点的角色来复制和管理数据。
在不同分区之间移动数据,保证集群内数据的一致性。
当您添加新节点并部署新节点时,集群会自动进行数据分片部署,并将数据分发到新节点。
当新节点加入集群时,它会根据数据分片规则接收数据并扩大集群规模。
数据迁移及节点管理数据当您迁移分区时,集群会自动将数据从一个节点移动到另一个节点,确保集群内数据的均衡分布。
如果需要删除某个节点,请先将数据迁移到其他节点,然后再删除该节点。
主从模式性能测试即使在压力测试下也表现出良好的性能,单节点处理能力达到60,000QPS。
分片模式下,数据分片提高了存储效率,但LRange操作的性能受到一定影响,导致整体QPS略低于主从模式。
通过使用管道技术将多个操作合并为一个请求,我们将QPS提高到900,000,并提高了性能效率。
概述Redis集群模式包括主从模式、哨兵模式、分片模式。
每种模式都有自己的特点和应用场景。
主从模式提供数据读写分离,但不提供自动容灾功能。
尽管哨兵模式通过自动机制提供高可用性和灾难恢复,但它可能会导致大型集群中的扩展问题。
通过数据分片提高存储效率,减少资源浪费。
了解并应用不同的集群模式可以有效提高Redis系统的稳定性和性能。

Docker搭建Redis主从复制

Redis主从复制是一种数据复制机制,主节点负责数据写入,从节点负责数据读取。
通常系统有1个主节点和多个从节点。
搭建主从复制集群时。
你会找到前三个配置文件,redis6379.conf;您需要先创建redis6380.conf和redis6381.conf。
在这些配置文件中;分别定义两个主节点和从节点。
然后,使用Docker容器启动两个主节点和从节点。
通过查看容器状态和目录来验证容器是否运行成功。
当主节点容器安装完成并获取IP地址后,这就是从节点连接主节点时需要的信息。
对于从节点1来说,主节点绑定操作需要在容器内部完成。
从节点2的配置与从节点1相同,但步骤可能略有不同。
检查主从复制功能时,从节点尝试添加数据,主节点添加数据应该成功,从节点读取主节点数据应该成功。
如果从节点宕机并重新启动。
新数据不会自动同步,您需要手动调整配置。
当主节点宕机时,主节点重启后,从节点仍然可以读取数据。
从节点数据将恢复到崩溃前的状态。
一主:两从配置生产环境的哨兵模式或集群模式推荐。
这个过程将在下一篇文章中详细讨论。

再谈Redis三种集群模式:主从模式、哨兵模式和Cluster模式

在Redis的世界里,有三种集群模式供开发者选择:主从模式、哨兵模式、集群模式。
每种模式都有各自的适用场景和特点。
早期的主从模型是通过主节点写入和从节点读取来构建的,虽然很基础,但在故障恢复方面效率较低。
一旦主节点宕机,切换需要人工干预。
哨兵模式是在此基础上改进的。
它通过Sentinel集群监控主从节点,实现故障自动恢复,提高系统稳定性和可用性。
但Sentinel模式受限于单节点性能,不适合大规模处理。
RedisCluster是在3.x版本之后引入的。
通过数据分片和多节点扩展,显着提高内存利用率和写入性能,特别适合高负载和大规模数据处理。
采用去中心化的多主多从架构,保证数据的高可用性和可扩展性。
部署Redis时,需要注意配置和节点设置,如主从节点配置、哨兵配置、集群模式下的节点分配等。
测试阶段通过客户端和SpringBoot项目操作来验证数据的正确同步和读写分离。
哨兵模式和集群模式都提供高可用性和自动故障转移。
有,但各有局限性,例如Sentinel在线扩容复杂,而集群模式对节点配置要求较高。
选择哪种模式取决于具体的业务需求和性能指标。
总的来说,了解并熟练使用这三种模式可以更好地优化Redis集群的性能和稳定性,适应不同规模和复杂程度的应用场景。
热门文章
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中某个字段的默认值;需要遵循几个步骤。首先您需...