
深入浅出Redis原理及实战
文章平均质量分 94
主要介绍相关Linux的相关的学习和技术分析。
码界西柚
优酷资深工程师 | INTJ | 狮子座 | 高洞察力理性自律小i人,
著作《深入浅出Java虚拟机—JVM原理与实战》,
10年以上开发经验,参与设计过多个大型互联网项目,定期分享技术干货和项目经验,
希望大家可以多多支持我,点赞关注一下
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
随着数据需求的迅猛增长,持久化和数据查询技术的重要性日益凸显。关系型数据库已不再是唯一选择,数据的处理方式正变得日益多样化。在众多新兴的解决方案与工具中,Redis凭借其独特的优势脱颖而出。服务器在载入用户指定的配置选项,并对server状态进行更新之后,服务器就可以进人初始化的第三个阶段一初始化服务器数据结构。serverCron函数默认每隔100毫秒执行一次,它的工作主要包括更新服务器状态信息,处理服务器接收的SIGTERM信号,管理客户端资源和数据库状态,检查并执行持久化操作等等。原创 2025-06-08 10:40:12 · 1248 阅读 · 0 评论 -
【LLM大模型技术专题】「入门到精通系列教程」基于ai-openai-spring-boot-starter集成开发实战指南
大型语言模型(),如和Mistral,为像 ChatGPT 这样的生成式人工智能应用提供动力。这些大型语言模型已经发展并且数量在增加,同时加速了一类新的智能应用的出现,并使现有的应用更加智能。原创 2025-06-07 20:53:10 · 1310 阅读 · 0 评论 -
【Redis技术进阶之路】「系统架构系列中篇」高可用之Master-Slave主从架构的复制问题(分析旧版点制功能)
随着数据需求的迅猛增长,持久化和数据查询技术的重要性日益凸显。关系型数据库已不再是唯一选择,数据的处理方式正变得日益多样化。在众多新兴的解决方案与工具中,Redis凭借其独特的优势脱颖而出。目前存在两个Redis服务器,地址分别是和。若登录Redis服务器,会得到OK的响应。服务器会成为的从服务器,而则会成为的主服务器。原创 2025-06-02 12:20:06 · 1141 阅读 · 0 评论 -
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 时间事件处理部分)
随着数据需求的迅猛增长,持久化和数据查询技术的重要性日益凸显。关系型数据库已不再是唯一选择,数据的处理方式正变得日益多样化。在众多新兴的解决方案与工具中,Redis凭借其独特的优势脱颖而出。原创 2025-06-01 16:04:25 · 942 阅读 · 0 评论 -
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 文件事件处理部分)
随着数据需求的迅猛增长,持久化和数据查询技术的重要性日益凸显。关系型数据库已不再是唯一选择,数据的处理方式正变得日益多样化。在众多新兴的解决方案与工具中,Redis凭借其独特的优势脱颖而出。一个命令请求从发送到获得回复的过程中,客户端和服务器需要完成一系列操作。OK那么从客户端发送客户端向服务器发送命令请求服务器接收并处理客户端发来的命令请求SET KEY VALUE,在数据库中进行设置操作,并产生命令回复OK服务器将命令回复OK发送给客户端客户端接收服务器返回的命令回复OK。原创 2025-05-31 12:01:44 · 734 阅读 · 0 评论 -
【Redis技术进阶之路】「原理分析系列开篇」探索事件驱动枚型与数据特久化原理实现(时间事件驱动执行控制)
随着数据需求的迅猛增长,持久化和数据查询技术的重要性日益凸显。关系型数据库已不再是唯一选择,数据的处理方式正变得日益多样化。在众多新兴的解决方案与工具中,Redis凭借其独特的优势脱颖而出。原创 2025-05-30 09:41:06 · 1056 阅读 · 0 评论 -
【Redis技术进阶之路】「原理分析系列开篇」探索事件驱动枚型与数据特久化原理实现(文件事件驱动执行控制)
随着数据需求的迅猛增长,持久化和数据查询技术的重要性日益凸显。关系型数据库已不再是唯一选择,数据的处理方式正变得日益多样化。在众多新兴的解决方案与工具中,Redis凭借其独特的优势脱颖而出。原创 2025-05-29 19:18:09 · 723 阅读 · 0 评论 -
【Redis实战专题】「技术提升系列」RedisJSON核心机制与实战应用解析(入门基础篇)
RedisJSON作为Redis生态体系的关键扩展组件,RedisJSON模块通过深度集成JSON处理引擎,在内存数据库中实现了对半结构化数据的范式级支持。该模块不仅突破传统键值存储的边界,更构建起完整的JSON生态系统,为开发者提供从持久化到计算的全链路解决方案。命令:JSON.SET这是 RedisJSON 模块提供的核心命令,用于在 Redis 中设置或更新 JSON 数据。键(Key):user:指定要存储的 JSON 数据对应的键名。在 Redis 中,键是唯一的,用于标识不同的数据。:在。原创 2025-03-24 19:42:02 · 1043 阅读 · 0 评论 -
【Redis技术进阶之路】「原理分析系列开篇」探索事件驱动枚型与数据特久化原理实现(数据持久化的实现AOF)
随着数据需求的迅猛增长,持久化和数据查询技术的重要性日益凸显。关系型数据库已不再是唯一选择,数据的处理方式正变得日益多样化。在众多新兴的解决方案与工具中,Redis凭借其独特的优势脱颖而出。通过文件同步步骤,系统确保AOF文件中的数据与磁盘上的物理数据保持完全一致,即使面对系统故障也能有效保障数据的完整性和可恢复性。这一系列流程紧密衔接,共同构筑了AOF持久化功能的坚固基石。AOF文件记录数据库状态,通过存储所有修改数据库的写命令请求实现,这些命令遵循Redis命令协议格式。原创 2024-09-30 20:28:14 · 929 阅读 · 0 评论 -
【Redis技术进阶之路】「原理分析系列开篇」探索事件驱动枚型与数据特久化原理实现(数据持久化的实现RDB)
随着数据需求的迅猛增长,持久化和数据查询技术的重要性日益凸显。关系型数据库已不再是唯一选择,数据的处理方式正变得日益多样化。在众多新兴的解决方案与工具中,Redis凭借其独特的优势脱颖而出。当SAVE命令被触发执行时,Redis服务器会进入一种阻塞状态,这意味着在此期间,服务器将暂停处理任何来自客户端的新命令请求。因此,若SAVE命令正处于执行过程中,所有尝试与服务器通信的客户端所发送的命令请求都将遭遇拒绝,服务器不会对这些请求进行任何处理或响应。直至SAVE。原创 2024-09-29 10:00:38 · 1032 阅读 · 0 评论 -
【Redis技术进阶之路】「原理分析系列开篇」高可用之Master-Slave主从架书的点制问题分析(分析旧版复制功能)
随着数据需求的迅猛增长,持久化和数据查询技术的重要性日益凸显。关系型数据库已不再是唯一选择,数据的处理方式正变得日益多样化。在众多新兴的解决方案与工具中,Redis凭借其独特的优势脱颖而出。OK在此配置中,我们设定了一个主从关系,其中原本监听于非标准端口12345的Redis服务器(地址127.0.0.1:12345)被配置为从服务器,而监听于标准端口6379的Redis服务器(地址127.0.0.1:6379)则相应地扮演了主服务器的角色。原创 2024-09-27 10:12:42 · 770 阅读 · 0 评论 -
【Redis技术进阶之路】「原理分析系列开篇」揭秘分析客户端和服务端网络通信交互实现(服务端篇 - 命令执行过程)
随着数据需求的迅猛增长,持久化和数据查询技术的重要性日益凸显。关系型数据库已不再是唯一选择,数据的处理方式正变得日益多样化。在众多新兴的解决方案与工具中,Redis凭借其独特的优势脱颖而出。原创 2024-09-26 11:47:29 · 727 阅读 · 0 评论 -
【Redis技术进阶之路】「原理分析系列开篇」揭秘分析客户端和服务端网络通信交互实现(客户端篇)
随着数据需求的迅猛增长,持久化和数据查询技术的重要性日益凸显。关系型数据库已不再是唯一选择,数据的处理方式正变得日益多样化。在众多新兴的解决方案与工具中,Redis凭借其独特的优势脱颖而出。原创 2024-09-24 17:32:50 · 659 阅读 · 0 评论 -
作者推荐 |【Redis技术进阶之路】「技术提升系列」夯实基础分析探究ziplist压缩列表的点点滴滴
随着数据需求的迅猛增长,持久化和数据查询技术的重要性日益凸显。关系型数据库已不再是唯一选择,数据的处理方式正变得日益多样化。在众多新兴的解决方案与工具中,Redis凭借其独特的优势脱颖而出。压缩列表是一种专为内存优化而设计的顺序数据结构,旨在通过紧凑的存储方式降低内存占用。它被广泛用作列表键和哈希键的底层实现机制之一,为高效数据处理提供了坚实的基础。压缩列表具备容纳多个节点的能力,每个节点都可以灵活地存储字节数组或整数值,满足了多样化的数据存储需求。原创 2024-08-23 13:44:15 · 803 阅读 · 0 评论 -
【Redis实战专题】「技术提升系列」夯实基础分析探究List列表的点点滴滴
Redis的列表(List),其存储结构采用的是双向链表,而非数组形式。这种结构在随机定位方面性能欠佳,但在首尾插入和删除数据方面表现出色。当数据量较大时,需要特别关注链表操作的时间消耗。如果,使用Redis来存储用户的购物车数据。每个用户都有一个对应的购物车列表,以用户 ID作为键。如果,使用Redis存储用户的订单列表。当需要查询某个用户特定订单在列表中的详细信息时,就可以使用lindex指令。例如,如果你有一个名为【用户ID-1lrange 用户ID-1 0 3。原创 2024-06-21 09:45:44 · 932 阅读 · 0 评论 -
【Redis技术进阶之路】「底层源码解析」揭秘高效存储模型与数据结构底层实现(跳跃表 - 上)
随着数据需求的迅猛增长,持久化和数据查询技术的重要性日益凸显。关系型数据库已不再是唯一选择,数据的处理方式正变得日益多样化。在众多新兴的解决方案与工具中,Redis凭借其独特的优势脱颖而出。跳跃表是有序集合的底层实现机制之一,Redis的跳跃表实现精巧地由zskiplist和zskiplistNode两个结构共同构成。其中,zskiplist结构负责保存整个跳跃表的关键信息,如表头节点、表尾节点以及长度等,而zskiplistNode结构则用于具体表示跳跃表中的每一个节点。原创 2024-06-20 14:17:26 · 1245 阅读 · 0 评论 -
【Redis技术进阶之路】「底层源码解析」揭秘高效存储模型与数据结构底层实现(字典)
随着数据需求的迅猛增长,持久化和数据查询技术的重要性日益凸显。关系型数据库已不再是唯一选择,数据的处理方式正变得日益多样化。在众多新兴的解决方案与工具中,Redis凭借其独特的优势脱颖而出。原创 2024-06-20 14:17:04 · 1221 阅读 · 0 评论 -
【Redis技术进阶之路】「底层源码解析」揭秘高效存储模型与数据结构底层实现(链表)
随着数据需求的迅猛增长,持久化和数据查询技术的重要性日益凸显。关系型数据库已不再是唯一选择,数据的处理方式正变得日益多样化。在众多新兴的解决方案与工具中,Redis凭借其独特的优势脱颖而出。以下是关于相关方法的介绍,这些方法定义在adlist.h头文件中,如以下源码所示。但值得注意的是,.h头文件通常只包含函数的声明和定义概念,而真正的函数实现机制则位于adlist.c源文件中。原创 2024-06-19 16:06:09 · 1253 阅读 · 0 评论 -
【Redis技术进阶之路】「原理分析系列开篇」揭秘高效存储模型与数据结构底层实现(SDS)
随着数据需求的迅猛增长,持久化和数据查询技术的重要性日益凸显。关系型数据库已不再是唯一选择,数据的处理方式正变得日益多样化。在众多新兴的解决方案与工具中,Redis凭借其独特的优势脱颖而出。原创 2024-06-19 16:05:31 · 1435 阅读 · 0 评论 -
【Redis深度专题】「核心技术提升」高级特性之Lua脚本执行机制的实现与探究
对于熟悉Redis功能的开发相关人员而言,Lua语言想必不会陌生。作为Redis的一个重要扩展,Lua在Redis中扮演着至关重要的角色,使得Redis具备了更为强大的脚本处理能力。Lua是一款轻量级脚本语言,以标准C语言为基础,其源码开放,设计初衷即是为了嵌入各类应用程序,赋予它们灵活的扩展与定制能力。原创 2024-04-28 20:55:26 · 1226 阅读 · 0 评论 -
【Redis性能瓶颈揭秘】「调优系列」深入分析热Key的排查策略和解决方案
在分布式架构的实践中,某一特定的Key数据往往会被针对性地分配至后端某台服务器上的独立Redis实例中,以实现高效的数据存储。然而,当这一Key遭遇突发性且高强度的请求操作时,往往会出现流量过于集中的情况。这种流量集中现象会导致单一Redis实例的处理能力受到严峻挑战,很可能使其CPU利用率急剧上升,逼近甚至达到满载状态。这种满载状态不仅会对整个系统的稳定性造成冲击,降低其可靠性,更可能直接威胁到系统的可用性,导致服务中断或性能下降。充分利用这些数据,我们可以设计一套定时上报机制。原创 2024-03-14 08:15:00 · 1359 阅读 · 0 评论 -
【Redis深度专题】「技术提升」探索Redis 6.0为何必须启用多线程以提升性能与效率
在Redis 6.0版本中,引入了多线程技术,这是为了进一步提高Redis的性能和并发处理能力。通过启用多线程,Redis能够同时处理多个客户端请求,有效地利用多核处理器资源,提高系统的吞吐量和响应速度。开启多线程可以在处理阻塞操作时提供更好的性能,例如慢查询、持久化操作等。此外,多线程还能够更好地应对高并发的情况,减少请求的排队等待时间,提高系统的响应能力。Redis 引入了多线程机制,但主要的数据处理和查询请求处理仍然是基于单线程的。原创 2023-12-31 15:17:26 · 1589 阅读 · 1 评论 -
【Redis深度专题】「核心技术提升」从源码角度探究Redis服务的内存使用、清理以及逐出等底层实现原理
Redis作为一种高性能的内存NoSQL数据库,其容量受限于最大内存的限制。用户在使用阿里云Redis时,除了对性能和稳定性有较高的要求外,对内存占用也非常敏感。然而,在实际使用中,一些用户可能会发现他们的线上实例的内存占用比预期的要大。不要放垃圾数据,及时清理无用数据:定期清理垃圾数据和下线的业务数据,避免占用不必要的内存空间和资源。设置过期时间:对具有时效性的键设置合理的过期时间,利用Redis自身的过期键清理策略,降低过期键对内存的占用,并避免手动清理的麻烦。原创 2023-12-10 09:37:08 · 1314 阅读 · 0 评论 -
【Redis深度专题】「踩坑技术提升」一文教会你如何在支持Redis在低版本Jedis情况下兼容Redis的ACL机制
在RedisConfig类的Bean初始化之前,将配置文件中的属性的值赋给静态变量。这样可以在其他地方通过访问来获取Redis的用户名。但是代码中的部分内容,如和似乎没有实际作用,可能是作者误写或者遗留的无用代码。原创 2023-10-18 14:19:29 · 577 阅读 · 0 评论 -
【Redis深度专题】「核心技术提升」探究Redis服务启动的过程机制的技术原理和流程分析的指南(集群指令分析—实战篇)
在上述命令中,将"新节点ip"替换为要添加的从节点的IP地址,将"端口号"替换为对应的端口号,将"主节点的id"替换为主节点的实际ID,将"集群中任意节点ip"替换为已存在的集群中的任意一个节点的IP地址和端口号。如果您需要添加新的Redis节点到集群中,请将"新节点ip"替换为要添加的Redis节点的IP地址,将"端口号"替换为对应的端口号,并将"集群中任意节点ip"替换为已存在的集群中的任意一个节点的IP地址和端口号。在删除主节点之前,需要进行一些数据迁移操作,并将该节点上的哈希槽分配给其他主节点。原创 2023-08-01 17:00:21 · 593 阅读 · 0 评论 -
【Redis深度专题】「核心技术提升」探究Redis服务启动的过程机制的技术原理和流程分析的指南(集群指令分析—上篇)
Redis集群提供了可靠的高可用性和扩展性,能够满足大规模分布式应用中对于高性能和数据可靠性的要求。通过节点间的数据分片、主从复制和自动迁移,Redis集群能够实现数据的平衡分布和故障恢复。节点自动发现:Redis Cluster可以自动发现新加入的节点,并将其加入到集群中。当一个新的节点加入集群时,其他节点会自动感知到并进行相应的配置更新。原创 2023-07-31 14:09:21 · 439 阅读 · 0 评论 -
【Redis深度专题】「核心技术提升」探究Redis服务启动的过程机制的技术原理和流程分析的指南(持久化功能分析)
Redis是一种面向"key-value"类型数据的分布式NoSQL数据库系统,具有高性能、持久存储和适应高并发应用场景等诸多优势。尽管Redis的发展起步较晚,但它的发展速度迅猛。原创 2023-07-26 11:32:09 · 306 阅读 · 0 评论 -
【Redis深度专题】「核心技术提升」探究Redis服务启动的过程机制的技术原理和流程分析的指南(集群功能分析)
自Redis 3.0版本之后,Redis开始支持Cluster功能(因此您需要安装3.0版本或更高版本的Redis)。Failover是一种系统设计和实现的机制,旨在确保在主节点(Master)故障或不可用时能够无缝切换到备用节点(Slave)以保持服务的连续性和可用性。在服务器A上执行下面语句测试连通性在服务器B上执行下面语句测试连通性如果上面的测试没有问题,则可进行下步操作。原创 2023-07-25 11:36:08 · 432 阅读 · 0 评论 -
【Redis深度专题】「核心技术提升」探究Redis服务启动的过程机制的技术原理和流程分析的指南(基础功能分析)
Redis是一个开源、高性能的key-value存储系统。它支持数据持久化、多样的数据结构、数据备份以及拥有高性能和原子性操作等特点。此外,Redis提供了丰富的扩展特性,包括发布/订阅、通知和键的过期等,适用于各种实时应用和消息系统。Redis的代码风格简洁,源码可读性强,进一步促进了开发者对Redis的理解和使用。相信看了本篇内容,你应该对Redis的启动逻辑有了一定的认识,后面会针对于源码进行深入分析,敬请期待!原创 2023-07-24 19:02:09 · 373 阅读 · 0 评论 -
【Redis故障排查】「连接失败问题排查和解决」带你深入分析一下Redis阻塞原因以及问题排查方案指南
是Redis的一个配置项,用于设置慢查询日志的阈值。它表示执行时间超过该阈值的命令会被记录到慢查询日志中。在您提供的示例中,被配置为10000,单位是微秒(μs),即10毫秒。这意味着当一个命令的执行时间超过10毫秒时,它将被Redis记录到慢查询日志中。是Redis的另一个配置项,表示慢查询日志的最大长度。它决定了慢查询日志中可以保存的记录数量。在您提供的示例中,被配置为128,即最多保存128条慢查询日志记录。当慢查询日志中的记录达到最大长度后,新的慢查询会替换掉最旧的记录。原创 2023-07-08 15:37:31 · 3736 阅读 · 0 评论 -
【Redis 故障排查】「连接失败问题排查和解决」带你总体分析CPU及内存的使用率高问题排查指南及方案
高消耗资源的命令即时间复杂度为O(N)或更高的命令,通常情况下,命令时间复杂度越高,在执行时消耗的资源越高,这会导致CPU使用率超高,容易触发主备倒换。slowlog-log-slower-than:如果在Redis实例的数据节点中执行一个命令,执行时间超过了slowlog-log-slower-than参数设置的阈值(单位为微秒),则会被记录到慢查询中。慢查询功能会记录执行超过指定时间阈值的命令,通过分析慢查询的语句和执行时长可帮助您找出高消耗命令,具体操参见慢查询。删除后,信息将永远丢失。原创 2023-02-14 22:24:15 · 1859 阅读 · 0 评论 -
【Redis故障排查】「连接失败问题排查和解决」带你总体分析和整理Redis的问题故障实战开发指南及方案
当你的应用服务在连接Redis时出现了拒绝连接的场景,首先你可以根据调整Redis实例参数maxclients的配置。maxclients代表着最大同时连接的客户端个数,Proxy集群实例不支持该参数,取值范围1,000~50,000,默认值:10,000,可以调整的再大一些。如果你使用的是集群模式,而使用客户端连接进行连接Cluster集群时,连接失败出现Read timed out或Could not get a resource from the pool。Jedis连接池调优,建议参考Jedis参数原创 2023-02-13 23:17:18 · 5717 阅读 · 1 评论 -
【Redis技术专区】「优化案例」谈谈使用Redis慢查询日志以及Redis慢查询分析指南
本篇文章主要介绍了Redis的执行的慢查询的功能的查询和配置功能,从而可以方便我们在实际工作中,进行分析Redis的性能运行状况以及对应的优化Redis性能的佐证和指标因素。在我们5.0左右的版本中Redis使用单线程架构和I/O多路复用模型来实现高性能的内存数据服务。接下来主要分析Redis单线程命令处理机制,接着分析Redis单线程模型为什么性能如此之高。慢查询就是当Redis在处理一条指令的时候,当超过了系统配置的执行时间的阈值的时候,就会被系统当作慢查询统计和判定。原创 2023-01-24 15:01:48 · 6296 阅读 · 0 评论 -
【Redis技术专区】「实战案例」谈谈使用Redis缓存时高效的批量删除的几种方案
之前我们的服务,在上线的时候发现有一些大Key的使用不是很规范,特别是没有设置过期时间,因此导致redis中内存的数据越来越多,目前Redis节点的内存已经快撑不住了。所以根据缓存键的规则去批量删除这些数据,比较常见的就是按前缀去删除。现在由于不得以为的原因要删除这几百个Key-Value的数据,这个时候我们肯定就要把缓存键全部删除掉。一般情况下在Redis中是可以很容易去实现的。但是如果在不阻塞业务的前提下,并且以高效的方式进行清理内存数据。就需要好好想想办法了。原创 2023-01-21 12:18:17 · 1783 阅读 · 1 评论 -
【Redis实战专题】「性能监控系列」全方位探索Redis的性能监控以及优化指南
Redis是一个开源(BSD 许可)、内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合等数据类型。内置复制、Lua 脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过 Redis Sentinel 提供高可用,通过Redis Cluster提供自动分区。原创 2023-01-14 01:15:44 · 1295 阅读 · 0 评论 -
【Redis 技术探索】「数据迁移实战」手把手教你如何实现在线 + 离线模式进行迁移 Redis 数据实战指南(数据检查对比)
redis-full-check是阿里云自研的Redis数据校验工具,能够提取源端和目的端的数据进行多轮差异化比较,并将比较结果记录在一个SQLite3数据库中,从而达到全量数据校验的目的。迁移源端和目的端Redis实例需为主从版、单节点版、开源集群版以及部分云上带proxy的集群版(阿里云、腾讯云)。redis-full-check对比的方向是单向,如果希望对比双向,则需要对比2次,第一次以A为源库,B为目的库,第二次以B为源库,A为目的库。原创 2023-01-08 11:45:00 · 791 阅读 · 0 评论 -
【Redis 技术探索】「安全实战系列」带你认识一下Redis的权限控制机制ACL(访问控制列表)是什么
下面是有效的ACL规则列表。某些规则只是单个单词,用于激活或删除标志,或执行对用户ACL的给定更改。其他规则是与命令或类别名称、键模式等连接在一起的字符前缀。+: 将该命令添加到用户可以调用的命令列表中。可以与一起使用,允许子命令(例如“+config | get”)。-: 将该命令移到用户可以调用的命令列表中。从Redis 7.0开始,它可以与|一起用于阻塞子命令(例如“-config|set”)。: 添加该类别中所有用户调用的命令,有效类别为@admin@set。原创 2023-01-08 04:30:00 · 1318 阅读 · 1 评论 -
【Redis 技术探索】「数据迁移实战」手把手教你如何实现在线 + 离线模式进行迁移 Redis 数据实战指南(scan模式迁移)
源端有多少个分片,cluster_helper.py 就会起多少个 redis-shake 进程,所以如果源端分片数较多的时候,需要评估当前机器是否可以承担这么多进程。cluster_helper.py 异常退出的时候,可能没有正常退出 redis-shake 进程,需要 ps aux | grep redis-shake 检查。使用redis-shake的scan在线迁移操作,主要通过scan.toml文件进行配置和执行迁移操作,如下图所示。原创 2023-01-08 06:30:00 · 838 阅读 · 0 评论 -
【Redis 技术探索】「数据迁移实战」手把手教你如何实现在线+离线模式进行迁移Redis数据实战指南(离线同步数据)
在第一轮校验时,Redis-full-check 会找出在源实例上的所有 key,然后从源实例和目的实例中把相应的值也都查找出来,进行比对。随着 Redis-shake 增量同步的进行,源实例和目的实例中的不一致数据也会逐步减少,所以,我们校验比对的轮数不用很多。Redis-full-check 的工作原理很简单,就是对源实例和目的实例中的数据进行全量比对,从而完成数据校验。与在线迁移相比,离线迁移适宜于源实例与目标实例的网络无法连通的场景,或者源端实例部署在其他云厂商Redis服务中,无法实现在线迁移。原创 2023-01-07 14:08:22 · 1097 阅读 · 4 评论 -
【Redis技术探索】「数据迁移实战」手把手教你如何实现在线+离线模式进行迁移Redis数据实战指南(在线同步数据)
RedisShake是基于redis-port基础上进行改进的是一款开源的Redis迁移工具,支持Cluster集群的在线迁移与离线迁移(备份文件导入)。数据可平滑迁移,当部署在其他云厂商Redis服务上的Cluster集群数据,由于SYNC、PSYNC命令被云厂商禁用,无法在线迁移时,可以选择离线迁移。原创 2023-01-07 12:46:58 · 1802 阅读 · 1 评论