一种内存数据自适应淘汰的方法及其系统技术方案

技术编号:38830042 阅读:26 留言:0更新日期:2023-09-17 09:50
本发明专利技术提供了一种内存数据自适应淘汰的方法,该方法为:步骤S1、在内存中设置一个链表和map字典;步骤S2、设置一个最大内存使用量max,并记录当前内存使用量,获取某个用户关键字key的值,从map字典中查找是否存在这个key;存在,则进入步骤S3;步骤S3、当累计内存使用量小于最大内存使用量max的50%时采用懒删除;步骤S4、当累计内存使用量大于等于最大内存使用量max的50%时,启动一个线程每隔一段时间t毫秒检查一次链表中位数之后的随机n个节点,并进行处理;步骤S5、当累计内存使用量已经达到最大内存使用量max时,添加新的节点,淘汰链表末尾的节点,直到释放出足够的新节点内存容量;本发明专利技术提供了能够自适应地淘汰过期数据的内存缓存机制。内存缓存机制。内存缓存机制。

【技术实现步骤摘要】
一种内存数据自适应淘汰的方法及其系统


[0001]本专利技术涉及内存处理优化
,特别是一种内存数据自适应淘汰的方法及其系统。

技术介绍

[0002]在当前互联网的环境下,需要缓存数据的场景越来越多。内存缓存是读取速度最快的缓存方式,但也是最危险的,如果没有对系统内存进行合理的管理,则可能会出现内存溢出、内存泄漏等风险。这些问题不仅会对本系统造成影响,还可能对同一台主机上的其他系统产生负面影响。

技术实现思路

[0003]为克服上述问题,本专利技术的目的是提供一种内存数据自适应淘汰的方法,能够在保证内存使用量不会过大的同时,还能够保证重要数据不会被轻易淘汰。
[0004]本专利技术采用以下方案实现:一种内存数据自适应淘汰的方法,所述方法包括如下步骤:
[0005]步骤S1、在内存中设置一个链表和map字典,链表的每个节点包含三个字段:value值、过期时间expire、指向下一个节点的指针nextNode;所述map字典建立了用户信息的索引;
[0006]步骤S2、设置一个最大内存使用量max,并记录本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种内存数据自适应淘汰的方法,其特征在于:所述方法包括如下步骤:步骤S1、在内存中设置一个链表和map字典,链表的每个节点包含三个字段:value值、过期时间expire、指向下一个节点的指针nextNode;所述map字典建立了用户信息的索引;步骤S2、设置一个最大内存使用量max,并记录当前内存使用量,获取某个用户关键字key的值,从map字典中查找是否存在这个key;如果不存在,则返回失败;存在,则进入步骤S3;步骤S3、当累计内存使用量小于最大内存使用量max的50%时采用懒删除,所述懒删除即:获取的key存在,则得到该key对应的节点在链表中的指针,通过指针得到节点数据,判断节点数据的过期时间expire是否已经过期;如果已经过期,则需要将该节点从链表中删除,并从map字典中删除对应的键值对;如果没有过期,则将该节点移到链表头部;步骤S4、当累计内存使用量大于等于最大内存使用量max的50%时,启动一个线程每隔一段时间t毫秒检查一次链表中位数之后的随机n个节点,判断n个节点的过期时间expire是否过期,如果过期,则需要将n个节点从链表中删除,并从map字典中删除对应的键值对;步骤S5、当累计内存使用量已经达到最大内存使用量max时,添加新的节点,表明已经没有更多的内存空间使用,淘汰链表末尾的节点,直到释放出足够的新节点内存容量。2.根据权利要求1所述的一种内存数据自适应淘汰的方法,其特征在于:所述步骤S1中value值用于存储用户下单信息;所述过期时间expire表示此缓存何时失效;指向下一个节点的指针nextNode是用于链接下一个缓存节点,形成链表;所述map字典中包含有key和指针类型value,其中key为string类型,指针类型value为链表指针类型,指向链表节点;map字典建立了用户信息的索引,即将用户名作为键值key,将对应的链表节点作为指针类型value值存储到map字典中;当需要获取任意一个用户的信息时,只需要通过输入的用户关键字key在map字典中查找到对应的链表节点,即可得到用户下单信息。3.根据权利要求1所述的一种内存数据自适应淘汰的方法,其特征在于:所述步骤S5进一步包括:淘汰链表末尾的节点,即先将节点从链表尾部删除,然后添加的新节点插入链表头部,即把新节点的nextNode指向原有的链表头部。4.一种内存数据自适应淘汰的系统,其特征在于:所述系统包括:内存设置模块、查找比...

【专利技术属性】
技术研发人员:刘德建叶伟李佳
申请(专利权)人:福建天晴数码有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1