一种内存的清理方法及相关设备技术

技术编号:33135278 阅读:16 留言:0更新日期:2022-04-17 00:59
本申请实施例公开了一种内存的清理方法及相关设备,包括:获取数据库的内存占用率和数据库存储的各个表的生存时长;若确定内存占用率在预设区间内,则根据内存占用率和数据库存储的各个表的生存时长确定待清理表,根据内存占用率、待清理表的个数确定清理时长;获取各个待清理表的标识,向预设终端设备发送携带各个待清理表的标识的提示信息;接收针对提示信息的携带目标表集合中各个目标表的标识的清理指令;响应于清理指令,按照预设清理周期对目标表集合中各个目标表的数据执行持续时长为清理时长的清理操作。采用本申请实施例,可以筛选出已经过期的表进行清理,释放无用内存。本申请涉及区块链技术,上述表可存储于区块链中。块链中。块链中。

【技术实现步骤摘要】
一种内存的清理方法及相关设备


[0001]本专利技术涉及人工智能
,尤其涉及一种内存的清理方法及相关设备。

技术介绍

[0002]随着信息技术的发展,互联网的数据海量的增长,缓存技术是提高企业内系统的并发量和吞吐量,所谓缓存是指当需要读取某一个数据时,先从缓存的数据中查找,缓存的数据读取速度较快,若找到则进行处理,若未找到,才从读取速率较慢的内存中读取并处理。其中,基于远程字典服务(Remote Dictionary Server,Redis)的数据库由于其支持的数据类型丰富、支持数据类型丰富且支持数据的持久化的特征被广泛作为缓存和高性能存储方案。而Redis是一个键

值(key

value)存储系统。其作为一个高性能的非关系型结构化语言(Not Only Structured Query Language,NoSQL)数据库,容量受到最大存储的内存限制。
[0003]目前,主要通过两种方式来清理内存:一种方式是通过读/写到已经过期的key时,直接删除掉这个key,从而进行清理。另一种方式是周期性的对所有的key进行检查,删除检查出已经过期的key。这两种方式清理速度较慢,在Redis中仍会存在大量的过期key没有被及时的清理,占用内存,从而影响系统的并发量和吞吐量。

技术实现思路

[0004]本申请实施例提供一种内存的清理方法及相关设备,一方面,通过获取的内存占用率和各个表的生存时长确定数据库中的待清理表的方式,无需手动进行配置,自动筛选出已经过期的表,减少手动清理的额外操作及开发工作。另一方面,将筛选出的表发送至业务人员处确认,业务人员确认之后,对业务人员确认清理的表进行清理,防止表被误清理,从而释放的无用内存。又一方面,通过确定清理时长,并每次执行清理操作的持续时长为清理时长,可以利用较小的资源对内存进行清理,对数据库的运行无任何影响。
[0005]第一方面,本申请实施例提供了一种内存的清理方法,包括:
[0006]获取数据库的内存占用率和上述数据库存储的各个表的生存时长;
[0007]在确定上述内存占用率在预设内存占用率区间内的情况下,根据上述内存占用率和上述数据库存储的各个表的生存时长确定上述数据库中的待清理表,并根据上述内存占用率、上述待清理表的个数确定清理时长;
[0008]获取各个待清理表中各个表的标识,并向预设终端设备发送提示信息,上述提示信息携带上述各个待清理表的标识;
[0009]接收针对上述提示信息发送的清理指令,上述清理指令携带目标表集合中各个目标表的标识,上述目标表集合包括上述各个待清理表中部分或全部表;
[0010]响应于上述清理指令,按照预设清理周期对上述各个目标表的数据执行清理操作,上述清理操作的持续时长为上述清理时长。
[0011]进一步地,上述根据上述内存占用率和上述数据库存储的各个表的生存时长确定
上述数据库中的待清理表,包括:
[0012]在确定上述内存占用率处于第一预设内存占用率区间内的情况下,确定上述数据库中生存时长小于或等于第一预设值的第一表,得到第一表集合;
[0013]按照上述第一表集合中各个第一表的写入时间按照从早到晚的顺序对上述各个第一表进行排序,得到第一排序结果,并将上述第一排序结果中排在前M位的第一表确定为上述待清理表,上述M为正整数;
[0014]在确定上述内存占用率处于第二预设内存占用率区间内的情况下,获取上述数据库存储的中各个表的参考读取时刻,上述数据库存储的各个表的参考读取时刻为上述数据库存储的各个表的最后一次读取时刻;
[0015]按照上述数据库存储的各个表的参考读取时刻按照从早到晚的顺序对上述数据库存储的各个表进行排序,得到第二排序结果,并将上述排序结果中排在前N位的表确定为上述待清理表,上述N为正整数。
[0016]进一步地,上述根据上述内存占用率、上述待清理表的个数确定清理时长,包括:
[0017]根据内存占用率区间和权重的对应关系确定第三预设内存占用率区间对应的第一权重,上述第三预设内存占用率区间为上述内存占用率所处于的内存占用率区间;
[0018]根据上述个数区间与权重的对应关系确定参考个数区间对应的第二权重,上述参考个数区间为上述待清理表的个数所在的个数区间;
[0019]获取参考清理时长和参考增量时长,根据上述第一权重、上述第二权重和上述参考增量时长确定增量时长,并根据上述增量时长和上述参考清理时长确定上述清理时长;
[0020]其中,上述增量时长为上述第一权重、上述第二权重和上述参考增量时长的积,上述清理时长为上述参考清理时长和上述增量时长的和。
[0021]进一步地,上述数据库存储的各个表中包括至少一条数据;上述按照预设清理周期对上述目标表集合中各个目标表的数据执行清理操作,包括:
[0022]获取上述清理时长内的参考清理数据,上述参考清理数据为在上述清理时长内的清理数据的条数;
[0023]确定上述各个目标表的数据条数,以及确定第一目标表中各条数据的参考读取时刻,按照上述各条数据的参考读取时刻按照从早到晚的顺序对上述各条数据进行排序,得到第三排序结果,上述各条数据的参考读取时刻为上述各条数据的最后一次读取时刻,上述第一目标表为上述目标表集合中的任一目标表;
[0024]根据上述参考清理数据、上述各个目标表的数据条数以及上述第三排序结果,确定上述第一目标表的待清理数据;
[0025]对上述目标表集合中各个第一目标表的待清理数据进行删除处理。
[0026]进一步地,上述根据上述参考清理数据、上述各个目标表的数据条数以及上述第三排序结果,确定上述第一目标表的待清理数据,包括:
[0027]根据上述各个目标表的数据条数之比确定上述各个目标表的清理比例,上述各个目标表的清理比例中包括上述第一目标表的清理比例,上述各个目标表的清理比例之和为1;
[0028]根据上述第一目标表的清理比例和上述参考清理数据,确定上述第一目标表的待清理数目,上述待清理数目为上述第一目标表的清理比例与上述参考清理数据之积;
[0029]将上述第三排序结果中排在前I位的数据确定为上述第一目标表的待清理数据,上述I的值为上述待清理数目,上述I为正整数。
[0030]进一步地,上述获取数据库的内存占用率和上述数据库存储的各个表的生存时长之前,上述方法还包括:
[0031]确定上述数据库的第一内存大小,以及确定在预设时间段内写入数据的第二内存大小,根据上述第一内存大小和上述第二内存大小确定在上述预设时间段内的增量内存占用率;
[0032]在确定上述增量内存占用率大于预设内存占用率阈值的情况下,触发执行获取数据库的内存占用率和上述数据库存储的各个表的生存时长的步骤。
[0033]进一步地,上述按照预设清理周期对上述目标表集合中各个目标表的数据执行清理操作之后,上述方法还包括:
[0034]获取上述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种内存的清理方法,其特征在于,包括:获取数据库的内存占用率和所述数据库存储的各个表的生存时长;在确定所述内存占用率在预设内存占用率区间内的情况下,根据所述内存占用率和所述数据库存储的各个表的生存时长确定所述数据库中的待清理表,并根据所述内存占用率、所述待清理表的个数确定清理时长;获取各个待清理表的标识,并向预设终端设备发送提示信息,所述提示信息携带所述各个待清理表的标识;接收针对所述提示信息发送的清理指令,所述清理指令携带目标表集合中各个目标表的标识,所述目标表集合包括所述各个待清理表中部分或全部表;响应于所述清理指令,按照预设清理周期对所述各个目标表的数据执行清理操作,所述清理操作的持续时长为所述清理时长。2.根据权利要求1所述的方法,其特征在于,所述根据所述内存占用率和所述数据库存储的各个表的生存时长确定所述数据库中的待清理表,包括:在确定所述内存占用率处于第一预设内存占用率区间内的情况下,确定所述数据库中生存时长小于或等于第一预设值的第一表,得到第一表集合;按照所述第一表集合中各个第一表的写入时间按照从早到晚的顺序对所述各个第一表进行排序,得到第一排序结果,并将所述第一排序结果中排在前M位的第一表确定为所述待清理表,所述M为正整数;在确定所述内存占用率处于第二预设内存占用率区间内的情况下,获取所述数据库存储的各个表的参考读取时刻,所述数据库存储的各个表的参考读取时刻为所述数据库存储的各个表的最后一次读取时刻;按照所述数据库储存的各个表的参考读取时刻从早到晚的顺序对所述数据库储存的各个表进行排序,得到第二排序结果,并将所述第二排序结果中排在前N位的表确定为所述待清理表,所述N为正整数。3.根据权利要求1所述的方法,其特征在于,所述根据所述内存占用率、所述待清理表的个数确定清理时长,包括:根据内存占用率区间和权重的对应关系确定第三预设内存占用率区间对应的第一权重,所述第三预设内存占用率区间为所述内存占用率所处于的内存占用率区间;根据所述个数区间与权重的对应关系确定参考个数区间对应的第二权重,所述参考个数区间为所述待清理表的个数所在的个数区间;获取参考清理时长和参考增量时长,根据所述第一权重、所述第二权重和所述参考增量时长确定增量时长,并根据所述增量时长和所述参考清理时长确定所述清理时长;其中,所述增量时长为所述第一权重、所述第二权重和所述参考增量时长的积,所述清理时长为所述参考清理时长和所述增量时长的和。4.根据权利要求3所述的方法,其特征在于,所述数据库存储的各个表中包括至少一条数据;所述按照预设清理周期对所述目标表集合中各个目标表的数据执行清理操作,包括:获取所述清理时长内的参考清理数据,所述参考清理数据为在所述清理时长内的清理数据的条数;确定所述各个目标表的数据条数,以及确定第一目标表中各条数据的参考读取时刻,
按照所述各条数据的参考读取时刻从早到晚的顺序对所述各条数据进行排序,得到第三排序结果,所述各条数据的参考读取时刻为所述各条数据的最后一次读取时刻,所述第一目标表为所述目标表集合中的任一目标表;根据所述参考清理数据、所述各个目标表的数据条数以及所述第三排序结果,确定所述...

【专利技术属性】
技术研发人员:黄士保
申请(专利权)人:平安消费金融有限公司
类型:发明
国别省市:

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

1