全网唯一标准王
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210305131.5 (22)申请日 2022.03.25 (71)申请人 上海旭荣网络科技有限公司 地址 201899 上海市嘉定区嘉定镇清河路 48号1幢6层6 02-4室 (72)发明人 王黎明 王强  (51)Int.Cl. G06F 16/2455(2019.01) G06F 16/23(2019.01) G06F 16/22(2019.01) G06F 16/27(2019.01) (54)发明名称 一种基于ORM的分布式全局缓存系统 (57)摘要 本发明公开了一种基于ORM的分布式全局缓 存系统, 包括以下步骤: 设计基于结构化数据库 的全局配置表、 通过ORM管理后台增加使用目标 配置数据、 提取表的所有字段组织为json格式的 数据、 json格式的数据写入、 从缓存数据库中获 取使用目标列表、 实例化伪ORM类。 该基于ORM的 分布式全局缓存系统, 设置有对ORM框架无限制, 通过继承ORMModel基类实现一个GlobalModel 类, 提供将结构化数据库配置表 提取转化并保存 到缓存数据库redi s的基础操作方法和缓存键规 则属性, 当配置有增删改操作时, 将自动调用 GlobalModel中的统一方法, 并根据缓存键规则 属性, 将配置按一定规则处理后更新到缓存数据 库redis; 得益于ORM的操作方便性, GlobalModel 非常容易封装统一处理过程, 用户无需做特殊处 理, 避免了复杂的sql 查询和解析工作。 权利要求书2页 说明书7页 附图3页 CN 114610770 A 2022.06.10 CN 114610770 A 1.一种基于ORM的分布式全局缓存系统, 其特 征在于, 包括以下步骤: (1)设计基于结构化数据库的全局配置表; (2)通过ORM管理后台增 加使用目标配置数据; (3)创建完成使用目标 数据后, 提取表的所有字段组织 为json格式的数据; (4)将json格式的数据写入到缓存数据库redis, 为保证稳定性, 可同时写入备用数据 库如MongoDB; (5)在所有服 务需要用到使用目标 数据的位置, 从 缓存数据库中获取使用目标列表; (6)实例化伪ORM类, 使用配置进行使用目标逻辑处 理。 2.根据权利要求1所述的一种基于ORM的分布式全局缓存系统, 其特征在于: 所述全局 缓存系统涉及两种数据: 一种为配置数据库, 为关系型数据库比如M ySQL、 PostgreSQL等; 一 种为缓存数据库, 为非关系型 数据库, 比如Redis、 Memcac he等。 3.根据权利要求1所述的一种基于ORM的分布式全局缓存系统, 其特征在于: 所述步骤 (3)中的json格式的数据包含全表缓存、 按唯一字段缓存和按组缓存三种, 其中全表缓存的 缓存key命名为global_conf_表名_all; 按唯一字段缓存的缓存key命名规范为global_ conf_key_v alue, key是表字段, value是数据库中的值; 按组缓存的缓存key命名规范和按 唯一字段缓存一 致, 为global_conf_key_value。 4.根据权利要求1所述的一种基于ORM的分布式全局缓存系统, 其特征在于: 所述步骤 (3)中的json格式的数据读取方法分为所有数据获取、 单个数据获取和按条件符合筛选的 多个配置。 5.根据权利要求1所述的一种基于ORM的分布式全局缓存系统, 其特征在于: 所述步骤 (3)中的jso n格式的所有数据获取的方法为: (1)拼接缓存key名, 为gl obal_conf_表名_al l; (2)查询全局变量中是否已有缓存key和对应数据; (3)如果有缓存key且生成缓存key的数据小于5秒, 则直接返回全局变量中缓存key对 应的数据; (4)全局变量没有缓存key或全局变量中缓存key的数据获取时间超过5秒, 则从Redis 中获取缓存key的数据, 并转 为json; (5)如果Redis获取 数据失败, 则从备份缓存数据库Mo ngoDB中获取缓存key的数据; (6)将数据更新到全局参数对应的缓存key中, 并记录更新的时间, 同时返回获取的数 据。 6.根据权利要求1所述的一种基于ORM的分布式全局缓存系统, 其特征在于: 所述步骤 (3)中的jso n格式的单个数据获取的方法为: (1)如果key是按唯一字段缓存或按组缓存的字段, 那么拼接缓存key名, global_conf_ key_value; (2)查询全局变量中是否已有缓存key和对应数据; (3)如果有缓存key且生成缓存key的数据小于5秒, 则直接返回全局变量中缓存key对 应的数据; (4)全局变量没有缓存key或全局变量中缓存key的数据获取时间超过5秒, 则从Redis 中获取缓存key的数据, 并转 为json;权 利 要 求 书 1/2 页 2 CN 114610770 A 2(5)如果Redis获取 数据失败, 则从备份缓存数据库Mo ngoDB中获取缓存key的数据; (6)将数据更新到全局参数对应的缓存key中, 并记录更新的时间, 同时返回获取的数 据; (7)如果key不是按唯一字段缓存, 也不是按组缓存的字段, 那么从所有数据获取 function_all取出表的所有jso n数据; (8)把jso n数据按key ‑value进行一 一比对, 返回第一个符合条件的数据; (9)若没有数据, 最终返回空数据。 7.根据权利要求1所述的一种基于ORM的分布式全局缓存系统, 其特征在于: 所述步骤 (3)中的jso n格式的按条件符合筛 选的多个 配置的方法为: (1)如果只传入了一个key和value, 且key是按组缓存的字段, 那么拼接缓存key名, global_conf_key_value; (2)查询全局变量中是否已有缓存key和对应数据; (3)如果有缓存key且生成缓存key的数据小于5秒, 则直接返回全局变量中缓存key对 应的数据; (4)全局变量没有缓存key或全局变量中缓存key的数据获取时间超过5秒, 则从Redis 中获取缓存key的数据, 并转 为json; (5)如果Redis获取 数据失败, 则从备份缓存数据库Mo ngoDB中获取缓存key的数据; (6)将数据更新到全局参数对应的缓存key中, 并记录更新的时间, 同时返回获取的数 据; (7)如果传入了多个key和value, 或者只传入一个key但key不是按组缓存的字段, 那么 从functi on_all取出表的所有jso n数据; (8)把jso n数据按多个key‑value进行一 一比对, 返回所有符合条件的数据; (9)若没有数据, 最终返回空数据。权 利 要 求 书 2/2 页 3 CN 114610770 A 3

PDF文档 专利 一种基于ORM的分布式全局缓存系统

文档预览
中文文档 13 页 50 下载 1000 浏览 0 评论 0 收藏 3.0分
温馨提示:本文档共13页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种基于ORM的分布式全局缓存系统 第 1 页 专利 一种基于ORM的分布式全局缓存系统 第 2 页 专利 一种基于ORM的分布式全局缓存系统 第 3 页
下载文档到电脑,方便使用
本文档由 SC 于 2024-02-24 00:50:11上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。