[发明专利]一种多级分布式缓存系统及方法有效

专利信息
申请号: 202110772457.4 申请日: 2021-07-08
公开(公告)号: CN113420052B 公开(公告)日: 2023-02-17
发明(设计)人: 汪瀛寰;沈忱;席尧磊 申请(专利权)人: 上海浦东发展银行股份有限公司
主分类号: G06F16/2455 分类号: G06F16/2455;G06F16/27
代理公司: 北京品源专利代理有限公司 11332 代理人: 赵迎迎
地址: 200000 *** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 多级 分布式 缓存 系统 方法
【权利要求书】:

1.一种多级分布式缓存系统,其特征在于,所述系统包括:本地缓存、远程缓存和数据库,所述远程缓存包括Redis加载缓存和Redis查询缓存;

所述本地缓存,用于接收到数据查询请求时,若本地缓存中存在目标数据,则返回所述目标数据,若本地缓存中不存在目标数据,则将所述数据查询请求发送至Redis查询缓存;

所述Redis查询缓存,用于接收所述数据查询请求,并确定所述数据查询请求的历史查询结果;若所述数据查询请求的历史查询结果为数据库中不存在目标数据,则返回所记录的数据库中不存在的结果;若存在与所述数据查询请求匹配的历史查询结果,则返回目标数据,并将目标数据存储至本地缓存;若无与所述数据查询请求匹配的历史查询结果,则将所述数据查询请求发送至Redis加载缓存;

所述Redis加载缓存,用于根据缓存配置表预先加载数据库中的待缓存数据,并基于接收到的数据查询请求进行目标数据查询,若查询到则返回目标数据,并将所述目标数据缓存至所述Redis查询缓存,并将目标数据存储至本地缓存,若不存在目标数据则发送至数据库进行查询;

所述数据库,用于根据接收到的数据查询请求进行目标数据查询,若查询到则返回目标数据,并将所述目标数据缓存至所述Redis查询缓存中,并将目标数据存储至本地缓存,若不存在目标数据则反馈数据库中不存在目标数据,并将反馈内容缓存至所述Redis查询缓存中;

所述数据库,用于接收到数据变更事件,则将所述数据变更事件同步到所述Redis加载缓存;

所述Redis加载缓存,用于根据所述数据变更事件,确定Redis加载缓存中的变更数据,并删除所述变更数据;

所述数据库,还用于若接收到所述数据变更事件提交,则进行数据库的数据更新;

所述Redis加载缓存,还用于根据所述数据变更事件的提交结果,进行Redis加载缓存的数据同步更新;

所述数据库,用于若接收到所述数据变更事件未提交,则不进行数据更新;

所述Redis加载缓存,还用于根据所述数据变更事件的未提交结果,进行删除变更数据的回存操作。

2.根据权利要求1所述的系统,其特征在于,所述缓存配置表,包括:表名、表主键和表索引;

所述表名和所述表主键,用于确定Redis加载缓存中的key及唯一目标数据记录;

所述表名和所述表索引,用于确定Redis加载缓存中的key及满足索引条件的至少一条数据记录。

3.根据权利要求2所述的系统,其特征在于,所述缓存配置表,还包括:表所属库;

所述表所属库,用于表示待缓存表的所属数据库。

4.根据权利要求2所述的系统,其特征在于,所述缓存配置表,还包括:初始化时间;

所述初始化时间,用于确定Redis加载缓存的定时加载任务的执行时间。

5.根据权利要求1所述的系统,其特征在于,所述系统还包括:定时加载任务管理模块;

所述定时加载任务管理模块,用于开启定时加载任务线程,按照所述初始化时间对所述数据库中的待缓存数据进行初始化加载。

6.一种多级分布式缓存方法,其特征在于,所述方法由多级分布式缓存系统执行,所述多级分布式缓存系统包括:本地缓存、远程缓存和数据库,所述远程缓存包括Redis加载缓存和Redis查询缓存;所述方法包括:

所述本地缓存接收到数据查询请求时,若本地缓存中存在目标数据,则返回所述目标数据,若本地缓存中不存在目标数据,则将所述数据查询请求发送至Redis查询缓存;

所述Redis查询缓存接收所述数据查询请求,并确定所述数据查询请求的历史查询结果;若所述数据查询请求的历史查询结果为数据库中不存在目标数据,则返回所记录的数据库中不存在的结果;若存在与所述数据查询请求匹配的历史查询结果,则返回目标数据,并将目标数据存储至本地缓存;若无与所述数据查询请求匹配的历史查询结果,则将所述数据查询请求发送至Redis加载缓存;

所述Redis加载缓存根据缓存配置表预先加载数据库中的待缓存数据,并基于接收到的数据查询请求进行目标数据查询,若查询到则返回目标数据,并将所述目标数据缓存至所述Redis查询缓存,并将目标数据存储至本地缓存,若不存在目标数据则发送至数据库进行查询;

所述数据库根据接收到的数据查询请求进行目标数据查询,若查询到则返回目标数据,并将所述目标数据缓存至所述Redis查询缓存中,并将目标数据存储至本地缓存,若不存在目标数据则反馈数据库中不存在目标数据,并将反馈内容缓存至所述Redis查询缓存中;

接收到数据变更事件,则将所述数据变更事件同步到所述Redis加载缓存;

根据所述数据变更事件,确定Redis加载缓存中的变更数据,并删除所述变更相关数据;

若接收到所述数据变更事件提交,则进行数据库的数据更新;

根据所述数据变更事件的提交结果,进行Redis加载缓存的数据同步更新;

若接收到所述数据变更事件未提交,则不进行数据库的数据更新;

根据所述数据变更事件的未提交结果,进行删除变更相关数据的回存操作。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海浦东发展银行股份有限公司,未经上海浦东发展银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202110772457.4/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top