【技术实现步骤摘要】
基于LWW原则的Redis双向同步系统及实现方法
[0001]本专利技术涉及互联网系统中数据实时双向同步
,具体地说是一种基于LWW原则的Redis双向同步系统及实现方法。
技术介绍
[0002]Redis(Remote Dictionary Server),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key
‑
Value数据库,并提供多种语言的API。
[0003]LWW(Last Write Wins,最后写入为准),假设两个Redis分别收到了对于同一个Key的设值需求,那么就可以简单地根据这个原则来判定,以最后一次写入为准。
[0004]专利号为CN112422628A专利文献公开了一种Redis
‑
canal跨机房缓存同步系统,基于Redis的复制协议实现,使用PSYNC命令实时获取Redis主节点所产生的写命令,并通过同步系统将命令在目标端机房进行重放,整个系统分为三层:控制台Apollo、节点发现和数据保留层ZK、数据同步层Redis
‑
canal。该技术方案是基于Redis的复制协议实现,使用PSYNC命令实时获取Redis主节点所产生的写命令,并通过同步系统将命令在目标端机房进行重放;但是该技术方案存在增加辅助key破坏数据循环的方式无法处理两端同时写入同一个key的场景,具体说明如下:
[0005]同一时间:一端set a 1;另一端set a 0;经数据冲销后,双 ...
【技术保护点】
【技术特征摘要】
1.一种基于LWW原则的Redis双向同步系统,其特征在于,该系统包括Redis
‑
A、Redis
‑
B、Redis中间件、正向采集模块、正向入库模块、逆向采集模块及逆向入库模块,Redis中间件作为连接Redis
‑
A及Redis
‑
B双端进程的连接桥梁,接收正向采集模块和逆向采集模块写入的数据,并为正向入库模块和逆向入库模块提供入库数据,同时还用于实现LWW原则,在产生数据冲突时保证数据最终的一致性;其中,正向数据传输通道为:Redis
‑
A
→
正向采集模块
→
Redis中间件
→
正向入库模块
→
Redis
‑
B;逆向数据传输通道为:Redis
‑
B
→
逆向采集模块
→
Redis中间件
→
逆向入库模块
→
Redis
‑
A。2.根据权利要求1所述的基于LWW原则的Redis双向同步系统,其特征在于,所述正向采集模块用于基于PSYNC主从复制机制模拟成Redis
‑
A的伪从机,实现Redis数据库全量数据及增量数据的采集及处理任务,最终写入到Redis中间件供正向入库模块消费。3.根据权利要求1所述的基于LWW原则的Redis双向同步系统,其特征在于,所述正向入库模块用于基于PSYNC主从复制机制模拟成Redis中间件的伪从机,消费Redis中间件中的数据,并将数据写入到Redis
‑
B。4.根据权利要求1所述的基于LWW原则的Redis双向同步系统,其特征在于,所述逆向采集模块用于基于PSYNC主从复制机制模拟成Redis
‑
B的伪从机,实现Redis数据库增量数据的采集处理,最终写入到Redis中间件供逆向入库模块消费;逆向采集模块仅采集增量数据。5.根据权利要求1
‑
4中任一项所述的基于LWW原则的Redis双向同步系统,其特征在于,所述逆向入库模块用于基于PSYNC主从复制机制模拟成Redis中间件的伪从机,消费Redis中间件中的数据,并将数据写入到Redis
‑
A。6.一种基于LWW原则的Redis双向同步实现方法,其特征在于,该实现方法是基于Redis RDB持久化机制与PSYNC主从复制机制实现Redis数据库间的双向数据迁移同步任务,并引入Redis消息中间件实现中间数据存储,同时引...
【专利技术属性】
技术研发人员:洪传玉,邓光超,方建勋,
申请(专利权)人:浪潮云信息技术股份公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。