[发明专利]缓存最终一致性更新方法有效
申请号: | 202110572535.6 | 申请日: | 2021-05-25 |
公开(公告)号: | CN113254465B | 公开(公告)日: | 2022-11-01 |
发明(设计)人: | 陈锦鹏;鲜青林;彭一亮;邓文科;宋舰;曾辉 | 申请(专利权)人: | 四川虹魔方网络科技有限公司 |
主分类号: | G06F16/23 | 分类号: | G06F16/23;G06F16/2455 |
代理公司: | 四川省成都市天策商标专利事务所(有限合伙) 51213 | 代理人: | 张秀敏 |
地址: | 621000 四川省绵阳*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 缓存 最终 一致性 更新 方法 | ||
本发明公开了一种缓存最终一致性更新方法,基于Redis队列保证缓存最终一致性,具体包括:业务系统需要对Redi s程序中的数据进行修改时,首先从Redi s程序中获取对应的缓存标志当前的incr值;业务系统将需要更新的数据进行拼装,拼装内容包括缓存信息、incr值以及缓存内容类型,然后对Redis程序指定队列进行左入队操作,既Redis程序的lpush操作;定时更新程序在定时任务触发时,负责对Redis程序指定队列进行右出队操作,既Redis程序的brpop操作;判断Redis程序的右出队操作获得的结果是否为空对缓存进行更新;本发明保证了数据库中的数据和Redis程序中的数据的最终一致性。
技术领域
本发明涉及数据更新技术领域,特别是一种缓存最终一致性更新方法。
背景技术
随着业务体量的不断增加,对于服务器的需求量也不断增大,因此相同功能的业务系统也不再只部署一台服务器,而是会部署多个业务系统在不同的服务器上面。由于这些业务系统之间存在一些公用数据是放置在Redis程序中的,同时这些业务系统也会对Redis程序中的数据进行查询和修改,因此可能会造成Redis程序中的数据与数据库中的数据不一致。
发明内容
为解决现有技术中存在的问题,本发明的目的是提供一种缓存最终一致性更新方法,本发明利用Redis程序的队列、Redis程序的incr命令以及队列中的数据内容和数据标识,来保证数据库中的数据和Redis程序中的数据的最终一致性。
为实现上述目的,本发明采用的技术方案是:一种缓存最终一致性更新方法,基于Redis队列保证缓存最终一致性,具体包括以下步骤:
步骤1、业务系统需要对Redis程序中的数据进行修改时,首先从Redis程序中获取对应的缓存标志当前的incr值;
步骤2、业务系统将需要更新的数据进行拼装,拼装内容包括缓存信息、incr值以及缓存内容类型,然后对Redis程序指定队列进行左入队操作,既Redis程序的lpush操作;
步骤3、定时更新程序在定时任务触发时,负责对Redis程序指定队列进行右出队操作,既Redis程序的brpop操作;
步骤4、判断Redis程序的右出队操作获得的结果是否为空:如果Redis程序的右出队操作获得的结果不为空,则对缓存进行更新;如果Redis程序的右出队操作获得的结果为空,则定时更新程序的该次执行结束,等待下一次唤醒。
作为本发明的进一步改进,所述步骤4中,如果Redis程序的右出队操作获得的结果不为空,对缓存进行更新具体包括以下步骤:
步骤4.1、定时更新程序解析出队操作获得的结果,获取对应的缓存标志的incr值,判断获取的incr值和解析出队操作获得的结果的incr值是否一致,如果一致则说明该数据属于最新的数据库数据,则是属于可以更新到Redis程序缓存中的内容;如果不一致,则说明该数据不是最新的,则应当跳过该次更新;
步骤4.2、当数据是属于应当被更新到Redis程序中的缓存数据时,先更新Redis程序中的对应的缓存标志的incr值,既对缓存标志进行incr操作;
步骤4.3、将解析到的数据更新到Redis程序中去,替换之前的数据。
本发明的有益效果是:
本发明通过基于Redis队列的功能、Redis程序的incr命令、队列中的数据内容和数据标识以及一个专门用来负责更新Redis程序缓存的单线程定时更新程序,来保证Redis程序中的数据与数据库中的属于保持一致,解决最终一致性的问题。
附图说明
图1为本发明实施例1的流程框图;
图2为本发明实施例2的流程框图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川虹魔方网络科技有限公司,未经四川虹魔方网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110572535.6/2.html,转载请声明来源钻瓜专利网。