说明:收录全网最新的团体标准 提供单次或批量下载
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202211022928.0 (22)申请日 2022.08.25 (71)申请人 北京睿芯高通 量科技有限公司 地址 102600 北京市大兴区北京经济技 术 开发区荣华中路19号院1号楼A座7层 711C室 (72)发明人 张晓辰 罗鑫 王达  (74)专利代理 机构 北京科龙寰宇知识产权代理 有限责任公司 1 1139 专利代理师 侯奇慧 (51)Int.Cl. G06F 9/445(2018.01) G06F 9/448(2018.01) G06F 9/54(2006.01) (54)发明名称 一种基于openresty的二层缓存数据的方法 (57)摘要 本发明公开了一种基于openresty的二层缓 存数据的方法, 包括缓存层设计、 共享内存初始 化、 数据添加/更新等步骤, 设计第一数据缓存层 L1层和第二数据缓存层L2层, 在第一数据缓存层 L1层中设置共享字典lrucache, 在第二数据缓存 层L2层中设置共享字典shared_dict; 按需加载 L2层数据至L1层, 减少内存占用。 在读取数据时 优先读取当前worker进程中的lrucach e, 如不存 在才会去L2层共享字典shared_dict中同步数 据; 对于多次访问同一数据, 无需频繁访问共享 字典shared_dict。 权利要求书2页 说明书7页 附图4页 CN 115237505 A 2022.10.25 CN 115237505 A 1.一种基于openresty的二层缓存数据的方法, 其特 征在于, 包括: 缓存层设计: 设计第一数据缓存层L1层和第二数据缓存层L2层, 在第一数据缓存层L1层中设置共享 字典lrucac he, 在第二数据缓存层L2层中设置共享字典shared_dict; 共享内存初始化: 定义共享字典shared_dict的名称并在nginx.conf中进行配置, 以及对以下参数进行 初始化, lru_size: L1层中, 每 个worker进程中lrucac he的最大项个数, lru_ttl: L1层中, 默认key值保存在lrucac he中的超时 时间, dict_ttl: L2层中, 默认key值保存在shared_dict中的超时 时间, 每个worker进程订阅统一 的ipc消息, 并设置收到ipc消息后的回调函数, 当worker进 程收到其它worker发送的删除key值的ipc消息时, 执行所述回调函数, 以删除自身进程的 lrucache中的key值; 数据添加/更新: 根据key值的类型将key值序列化 为字符流, 将key值的类型和序列化后的字符流使用分隔符拼成新的key值, 将新的key值写入到 shared_dict中并更新dict_t tl, 将原来的key值写入当前w orker进程的lrucac he中并更新 lru_ttl; 获取数据: 判断L1层当前worker进程的lrucache中是否存在key的值, 同时判断key的值是否过 期, 如果key的值存在且key的值未 过期, 则获取 该key值, 若L1层key的值不存在或者存在的key的值已过期, 则去L2层shared_dict中查找key的 值, 若L2层的key值 不存在或者 key的值已过期, 则输出失败消息; 若L2层的shared_dict中存在key的值且未过期, 则获取该key的值, 此时该key的值是 拼接的类型和序列化后的字符流, 基于分隔符分割 该字符流, 得到类型和序列化后的字符 流, 根据类型对字符流进行反序列化, 得到新的key值, 此时新的key值 为lua类型; 将新的key值写入当前w orker进程的lrucac he。 2.根据权利 要求1所述的基于op enresty的二层缓存数据的方法, 其特征在于, key的类 型以及对应的序列化方法如下: number: 使用tost ring函数转 为字符串, boolean: 根据变量类型 范围"true"或"false", string: 直接返回字符串, table: 使用cjso n模块, 将table序列化 为json字符串。 3.根据权利要求2所述的基于openresty的二层缓存数据的方法, 其特征在于, 对字符 流进行反序列化方法如下: number: 使用to number函数将字符流 转为number; boolean: 字符流 为"true"或"false", 分别转 为true或false; string: 直接返回字符串; table: 使用cjso n模块, 将字符流反序列化 为table。权 利 要 求 书 1/2 页 2 CN 115237505 A 24.根据权利要求1所述的基于openresty的二层缓存数据的方法, 其特 征在于, 删除key值过程如下: 删除保存在共享字典shared_dict中的key值; 删除当前保存在w orker进程的lrucac he中的key值; 将删除key值的消息广播ipc消息给其它worker进程, 其它worker进程收到ipc消息后, 调用注册的回调函数删除自身w orker进程 lrucache中的key值。 5.根据权利要求 4所述的基于openresty的二层缓存数据的方法, 其特 征在于, 共享内存初始化、 数据添加/更新、 获取 数据以及删除key值均封装为 函数以供调用。权 利 要 求 书 2/2 页 3 CN 115237505 A 3

.PDF文档 专利 一种基于openresty的二层缓存数据的方法

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