说明:收录全网最新的团体标准 提供单次或批量下载
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210152178.2 (22)申请日 2022.02.18 (71)申请人 北京思特奇信息技 术股份有限公司 地址 100086 北京市海淀区中关村南大街6 号14层 (72)发明人 张少峰  (74)专利代理 机构 北京汇信合知识产权代理有 限公司 1 1335 专利代理师 孙民兴 (51)Int.Cl. G06F 16/27(2019.01) G06F 16/2455(2019.01) G06F 16/23(2019.01) (54)发明名称 一种数据库变更数据 同步刷新本地缓存的 系统及方法 (57)摘要 本发明公开了一种数据库变更数据 同步刷 新本地缓存的系统及方法, 包括: 依次相连的数 据库、 服务端、 客户端和本地缓存; 其中, 客户端 向服务端发送版本号比较请求; 服务端获取请求 中的客户端的版本号并与服务端的最新版本号 进行比较; 若版本号发生变更, 则将最新版本号 以及需要失 效的Cach eKey返回至客户端; 客户端 使用服务端返回的最新版本号替换当前存储的 版本号, 并通过回调函数调用本地缓存的API, 将 服务端返回的需要失 效的Cach eKey失效掉; 本地 缓存通过懒加载的方式触发缓存 数据重新加载。 本发明使得本地缓存能用于数据库中的动态数 据, 通过检查数据库中数据的变化来主动刷新缓 存, 能够更准确灵敏的对缓存 进行靶向刷新。 权利要求书2页 说明书6页 附图1页 CN 114722116 A 2022.07.08 CN 114722116 A 1.一种数据库变更数据同步刷新本地缓存的系统, 其特征在于, 包括: 依次相连的数据 库、 服务端、 客户端和本地缓存; 其中, 所述服务端, 用于: 扫描所述数据库中的数据 是否有变更, 若有变更, 则将变更的时间戳作为版本号、 将变 更数据作为CacheKey, 将版本号和CacheKey构成的元素存入 版本变更队列中且按时间先后 进行元素排序; 接收所述客户端发送的版本号比较请求, 当版本号发生变更, 则将最新版本号以及需 要失效的Cac heKey发送至所述 客户端; 所述客户端, 用于: 基于已存储的版本号, 向所述服务端发送版本号比较请求; 当版本号发生变更, 则 接收 并替换存 储所述服务端发送的最 新版本号以及接收需要失效的Cac heKey; 基于需要失效的CacheKey, 回调本地缓存失效旧的CacheKey, 后续本地缓存通过懒加 载方式重新加载缓存数据。 2.如权利要求1所述的系统, 其特征在于, 所述客户端被集成到业务系统应用中, 所述 客户端通过L ongPolling方式与服 务端交互。 3.如权利要求1或2所述的系统, 其特 征在于, 所述 服务端, 包括: 扫描模块, 用于在服 务端启动时, 定时扫描数据库表数据变更状态; 生成模块, 用于在数据库表数据变更状态发生状态后, 将最新一次的数据变更时间作 为Version元素的版本号插入到版本变更队列的头部; 将数据库关系表的数据格式通过EL 表达式转换为缓存中的Key的数据格式, 存储到对应的Version元素上, 表示在该版本上发 生了变更的Cac heKey; 比较模块, 用于提取请求中客户端的版本号, 并将客户端的版本号与服务端的最新版 本号进行比较, 若客户端的版本号小于服务端的版本号, 则从服务端的版本变更队列中找 到匹配该版本号的位置, 并且合并该位置到队列头部的所有CacheKey数据, 立即为客户端 返回最新的版本号与所有需要失效的Cac heKey数据。 4.如权利要求3所述的系统, 其特 征在于, 在所述比较模块中, 若客户端的版本号等于服务端的版本号, 则服务端按照LongPolling的方式持有客户 端调用句柄预设时间后 返回数据无变化的标识; 若在LongPolling持有客户端调用句柄期 间内, 服务端 版本变更队列发生了变化, 则立即触发版本比较与CacheKey合并操作, 并立即 为客户端返回最 新的timestamp版本号与需要失效的Cac heKey数据; 若客户端的版本号大于服务端的版本号, 则强制读取一次数据库, 根据数据库的变更 数据为版本变更队列插入最新Version元素, 然后再次比较timestamp版本号后按以上描述 流程为客户端返回相应的信息 。 5.如权利要求4所述的系统, 其特征在于, 若客户端接收到数据无变化的标识, 则不做 任何操作。 6.一种数据库变更数据同步刷新本地缓存的方法, 基于如权利要求1~5 中任一项所述 的系统实现, 其特 征在于, 包括: 初始化阶段, 客户端调用一次服 务端, 获取并存 储服务端最新的版本号; 客户端启动持续调用服务端的LongPolling的守护线程, 向服务端发送版本号比较请权 利 要 求 书 1/2 页 2 CN 114722116 A 2求; 服务端获取版本号比较请求中客户端的版本号, 并将客户端的版本号与服务端的版本 变更队列中的最新版本号进行比较; 若版本号发生变更, 则将最新版本号以及需要失效的 CacheKey返回至所述 客户端; 客户端使用服务端返回的最新版本号替换当前存储的版本号, 并通过回调函数调用本 地缓存的API, 将服 务端返回的需要失效的Cac heKey失效掉; 本地缓存通过懒加载的方式触发缓存数据重新加载; 持续循环以上流 程。 7.如权利要求6所述的方法, 其特 征在于, 还 包括: 服务端启动时, 在后台启动定时扫描数据库表数据变更状态的线程; 在数据库表数据变更状态发生状态后, 将最新一次的数据变更时间作为Version元素 的版本号插入到版本变更队列的头部; 将数据库关系表的数据格式通过EL表达式转换为缓 存中的Key的数据格式, 存储到对应的Version元素上, 表示在该版本上发生了变更的 CacheKey; 将版本号和CacheKey构成的Version元素存入版本变更队列中且按时间先后进行元素 排序; 持续循环以上流 程。 8.如权利要求6或7所述的方法, 其特征在于, 所述将客户端的版本号与服务端的版本 变更队列中的最 新版本号进行比较, 包括: 若客户端的版本号小于服务端的版本号, 则从服务端的版本变更队列中找到匹配该版 本号的位置, 并且合并该位置到队列头部的所有CacheKey数据, 立即为客户端返回最新的 版本号与所有需要失效的Cac heKey数据; 若客户端的版本号等于服务端的版本号, 则服务端按照LongPolling的方式持有客户 端调用句柄预设时间后 返回数据无变化的标识; 若在LongPolling持有客户端调用句柄期 间内, 服务端 版本变更队列发生了变化, 则立即触发版本比较与CacheKey合并操作, 并立即 为客户端返回最 新的timestamp版本号与需要失效的Cac heKey数据; 若客户端的版本号大于服务端的版本号, 则强制读取一次数据库, 根据数据库的变更 数据为版本变更队列插入最新Version元素, 然后再次比较timestamp版本号后按以上描述 流程为客户端返回相应的信息 。权 利 要 求 书 2/2 页 3 CN 114722116 A 3

.PDF文档 专利 一种数据库变更数据同步刷新本地缓存的系统及方法

文档预览
中文文档 10 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共10页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种数据库变更数据同步刷新本地缓存的系统及方法 第 1 页 专利 一种数据库变更数据同步刷新本地缓存的系统及方法 第 2 页 专利 一种数据库变更数据同步刷新本地缓存的系统及方法 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 11:14:59上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。