[发明专利]缓存公共组件及其实现、安装与运行方法有效
申请号: | 202110953485.6 | 申请日: | 2021-08-19 |
公开(公告)号: | CN113722363B | 公开(公告)日: | 2023-09-12 |
发明(设计)人: | 闫文 | 申请(专利权)人: | 成都民航西南凯亚有限责任公司 |
主分类号: | G06F16/2455 | 分类号: | G06F16/2455;G06F16/26;G06F16/215 |
代理公司: | 成都诚中致达专利代理有限公司 51280 | 代理人: | 曹宇杰 |
地址: | 610095 四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 缓存 公共 组件 及其 实现 安装 运行 方法 | ||
1.一种缓存公共组件实现方法,其特征在于,包括步骤:
S100、注解申明及参数申明格式处理:
通过java的@interface类进行自定义注解分布式缓存@DistributeCache,注解使用定义在接口函数入口处,并说明默认开启缓存服务,在所述java的@interface类中定义当前注解的配置参数,配置参数包括时间参数、控制参数、唯一key;
时间参数包括自定义过期时间,若用户没有进行自定义事件配置,则启用默认过期时间;自定义过期时间或默认过期时间用于定义一级缓存中的过期时间、二级缓存中的过期时间;
控制参数包括用于控制接口层面的开关参数以及全局配置参数,用于控制接口层面的开关参数包括为接口处的申明的isOpen函数,用于让当前接口启用或不启用缓存设置;全局控制参数,在应用配置文件中进行配置,包括globalIsOpen参数,用于作为最高优先级一全局缓存配置来开启或关闭当前应用中使用了缓存注解分布式缓存@DistributeCache的接口函数的缓存;
唯一key用于在缓存的map结构存储中查找对应的缓存值;
参数申明格式以:分割,用于适合Redis中的结构,后台程序也以:来进行分割;
S200、注解解析配置:
通过Spring的@component实现切面类自动装载,并结合@Aspect进行切面类的申明,以实现对当前包含缓存注解的接口函数的切入,并调用预先配置的公共处理模块中的解析接口来获取注解申明中的配置参数;
所述公共处理模块,用于获得接口申明参数、进入解析过程中,并在解析过程中获取和解析接口出定义的注解参数,再分别对一级缓存、二级缓存根据唯一key进行数据查找,如果在一级缓存、二级缓存中找到了属于有效期内的数据则直接返回给接口调用的客户端,否则会执行原接口自己的数据查找逻辑,在返回结果前,调用一级缓存或二级缓存的存储接口把数据保存到一级缓存或二级缓存中并设置缓存有效期;所述属于有效期内是根据自定义过期时间判断;
S300、一级缓存封装:对分布式缓存的Redis的API进行封装,利用spring动态配置在加载时注入应用,以实现对第三方缓存的适配;
S400、二级缓存封装:使用map键值对的结构来实现本地缓存进行封装获得所述map结构,封装中对所述map的结构本身进行分区,并引入数据自动清除机制,所述数据自动清除机制通过使用LRU算法实现,用于在容量满或数据缓存时间到期时进行数据自动清除;
S500、可视化实现:使用vue实现前端可视化界面组件,以树形列表的形式展示当前缓存的内容。
2.根据权利要求1所述的缓存公共组件实现方法,其特征在于,使用LRU算法实现在容量满或数据缓存时间到期时进行数据自动清除,包括步骤:
以队列形式在容器内进行数据缓存;
根据调用时间对队列中缓存的数据进行排序,以距离调用时间距离当前时间最近的缓存数据放在队列头部位置;
在容量满时,自动按照预设比例从队列尾部开始清除缓存数据,所述比例是指需要清除的缓存数据所占整个队列的比例;
对于数据缓存时间到期的缓存数据进行直接删除。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都民航西南凯亚有限责任公司,未经成都民航西南凯亚有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110953485.6/1.html,转载请声明来源钻瓜专利网。