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命令。
添加主节点或从节点涉及启动节点、将节点添加到集群以及分配哈希槽,而删除节点则涉及删除从节点和主节点。
上一篇:
CMD命令行操作MySQL数据库全攻略
相关文章
SQL联表查询技巧:深入理解JOIN操作...
2024-12-17 05:10:19SQL删除数据方法详解:DELETE与T...
2024-12-18 15:24:21MySQL时间查询技巧与实例解析
2024-12-15 11:52:20数据库字段全用字符串存储:转换技巧与注意...
2024-12-14 18:18:43深入解析MySQL:优势、性能优化与数据...
2024-12-16 05:24:49MySQL插入数据:自动增加ID与SQL...
2024-12-16 17:56:29MySQL数据库表创建与数据导入教程:步...
2024-12-15 18:07:15SQL2000数据库启动失败?一招解决过...
2024-12-17 07:51:17PL/SQL导出DMP文件与SQL数据导...
2024-12-21 03:34:06Windows 10 MySQL服务启动...
2024-12-15 10:21:53最新文章
22
2024-12
22
2024-12
22
2024-12
22
2024-12
22
2024-12
22
2024-12
22
2024-12
22
2024-12
22
2024-12
22
2024-12
热门文章
1
SQL2000数据库备份压缩技巧:优化空...
怎么将SQL2000中的较大的备份数据库压缩变小更改数据库属性-选项-恢复模型很...
2
高效掌握:CMD命令轻松启动、关闭及登录...
如何用cmd命令快速启动和关闭mysql数据库服务开发中经常使用MySQL数据库...
3
SQL字符串处理技巧:单引号使用与转义标...
SQL语句中,字符串类型的值均使用什么符号标明?单引号如果字符串内有单引号,请小...
4
Windows环境下Redis安装指南与...
redis安装windowsredis基本简介与安装安装Redis首先需要获取安...
5
深度解析:Redis性能优势与局限性,助...
redis有哪些优缺点?Redis的全称是RemoteDictionary.Se...
6
深入解析:MySQL数据库的特性与应用
mysql是什么MySQL是一个关系数据库管理系统。MySQL是一个开源关系数据...
7
Linux Redis后台启动教程:配置...
linux怎么启动redis1、首先,为了管理方便,将Redis文件中的conf...
8
MySQL浮点数与Decimal类型详解...
MySQL中的float和decimal类型有什么区别小数类型可以准确地表示非常...
9
C语言实现输入10个整数并找出最大最小值...
C语言从键盘输入任意的10个整数,从中找出最大值和最小值并输出代码:#inclu...
10
揭秘MySQL:为何将可重复读设为默认事...
mysql默认的事务隔离级别是READUNCOMMITTED(未提交读)、REA...