缓存数据的检测方法、装置、计算机设备和存储介质转让专利

申请号 : CN202011479824.3

文献号 : CN112540811B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈志城

申请人 : 平安科技(深圳)有限公司

摘要 :

本申请涉及数据处理技术领域,提供一种缓存数据的检测方法、装置、计算机设备和存储介质,方法包括:当接收到输入的缓存检测请求时,获取与项目信息对应的缓存检测脚本;运行缓存检测脚本,获取目标项目的js代码;生成与js代码对应的抽象语法树;遍历抽象语法树中的所有对象,获取js代码中包含的各第一缓存数据的第一key;以及获取经过缓存清除处理的第二缓存数据的第二key;基于第一key内包含的与第二key之间的匹配结果为匹配失败的第三key,获取并展示第三key对应的目标缓存数据。通过本申请能够快速地检测出本地缓存中未进行过清除处理的目标缓存数据。本申请还可以应用于区块链领域,上述目标缓存数据等数据可以存储于区块链上。

权利要求 :

1.一种缓存数据的检测方法,其特征在于,包括:判断是否接收到输入的缓存检测请求,其中,所述缓存检测请求携带有与目标项目对应的项目信息,所述缓存检测请求为用于检测本地存储中包含的与所述目标项目对应的未进行过清除处理的缓存数据的请求;

若接收到输入的缓存检测请求,基于所述缓存检测请求,获取与所述项目信息对应的预存储的缓存检测脚本;

运行所述缓存检测脚本,基于所述缓存检测脚本的运行逻辑,获取所述目标项目的js代码;

生成与所述js代码对应的抽象语法树;

遍历所述抽象语法树中的所有对象,通过预设的第一获取方法获取所述抽象语法树的所有对象中包含的与各第一缓存数据一一对应的第一key,并将所有所述第一key存储于预设的第一数组内;以及,

通过预设的第二获取方法获取所述抽象语法树的所有对象中包含的与经过缓存清除处理的第二缓存数据一一对应的第二key,并将所有所述第二key存储于预设的第二数组内;

将指定key分别与所述第二数组中包含的每一个所述第二key进行匹配处理,以检测所述第二数组内是否存在与所述指定key相同的目标key,得到对应的匹配结果,其中,所述指定key为所述第一数组内包含的所有所述第一key中的任意一个key,所述匹配结果包括匹配成功或匹配失败;

若所述匹配结果为匹配失败,则判定与所述指定key对应的指定缓存数据未进行过清除处理;

基于所述第一数组内包含的与所述第二数组内的第二key之间的匹配结果为匹配失败的第三key,获取并展示与所述第三key对应的目标缓存数据。

2.根据权利要求1所述的缓存数据的检测方法,其特征在于,所述基于所述缓存检测请求,获取与所述项目信息对应的预存储的缓存检测脚本的步骤之前,包括:判断是否存在除所述缓存检测请求之外的待处理的其他任务请求;

若存在除所述缓存检测请求之外的待处理的其他任务请求,则获取所述其他任务请求的请求数量;

判断所述请求数量是否大于预设的数量阈值;

若所述请求数量大于所述数量阈值,按照预设规则从所述其他任务请求中筛选出指定数量的目标任务请求;

判断所述目标任务请求中是否存在处理时间不可调整的特定任务请求;

若所述目标任务请求中存在所述特定任务请求,则将所述特定任务请求从所述目标任务请求中剔除,得到剔除后的目标任务请求;

将所述剔除后的目标任务请求调整至预设的空闲时间段内进行处理,其中,所述空闲时间段与所述缓存检测请求的处理时间段不同。

3.根据权利要求2所述的缓存数据的检测方法,其特征在于,所述按照预设规则从所述其他任务请求中筛选出指定数量的目标任务请求的步骤,包括:确定各所述其他任务请求的资源消耗量;

按照所述资源消耗量从大到小的顺序对所有所述其他任务请求进行排序,得到对应的第一排序结果;

从所述第一排序结果中排在首位的其他任务请求开始,依次获取与所述指定数量相同的多个第一任务请求;

将所有所述第一任务请求作为所述目标任务请求。

4.根据权利要求2所述的缓存数据的检测方法,其特征在于,所述按照预设规则从所述其他任务请求中筛选出指定数量的目标任务请求的步骤,包括:基于预设的任务请求优先级表获取各所述其他任务请求的处理优先级;

根据所述处理优先级从低到高的顺序对所有所述其他任务请求进行排序,得到对应的第二排序结果;

从所述第二排序结果中排在首位的其他任务请求开始,依次获取与所述指定数量相同的多个第二任务请求;

将所述第二任务请求作为所述目标任务请求。

5.根据权利要求1所述的缓存数据的检测方法,其特征在于,所述基于所述第一数组内包含的与所述第二数组内的第二key之间的匹配结果为匹配失败的第三key,获取并展示与所述第三key对应的目标缓存数据的步骤之后,包括:获取所述目标缓存数据的写入时间;以及,获取所述目标缓存数据的过期时长;

基于所述写入时间与所述过期时长,计算与所述目标缓存数据对应的过期时间点;

获取当前时间,并判断所述当前时间是否超过所述过期时间点;

若所述当前时间超过所述过期时间点,则对所述目标缓存数据进行清除处理;

若所述当前时间未超过所述过期时间点,则计算所述过期时间点与所述当前时间的差值;

基于所述目标缓存数据与所述差值生成相应的过期提醒信息,并展示所述过期提醒信息。

6.根据权利要求1所述的缓存数据的检测方法,其特征在于,所述基于所述缓存检测请求,获取与所述项目信息对应的预存储的缓存检测脚本的步骤之前,包括:基于所述缓存检测请求,获取预存储的检测脚本模板;

对所述缓存检测请求进行解析处理,提取出所述项目信息;

使用所述项目信息对所述检测脚本模板进行填充处理,得到填充处理后的检测脚本模板;

将所述处理后的检测脚本模板作为所述缓存检测脚本。

7.根据权利要求1所述的缓存数据的检测方法,其特征在于,所述基于所述第一数组内包含的与所述第二数组内的第二key之间的匹配结果为匹配失败的第三key,获取并展示与所述第三key对应的目标缓存数据的步骤之后,包括:基于所述目标缓存数据,生成与所述目标缓存数据对应的警报信息;

获取预设的邮件登录信息,以及获取预设邮件地址;

基于所述邮件登录信息登录至对应的邮件服务器;

通过所述邮件服务器将所述警报信息发送至所述预设邮件地址。

8.一种缓存数据的检测装置,其特征在于,包括:第一判断模块,用于判断是否接收到输入的缓存检测请求,其中,所述缓存检测请求携带有与目标项目对应的项目信息,所述缓存检测请求为用于检测本地存储中包含的与所述目标项目对应的未进行过清除处理的缓存数据的请求;

第一获取模块,用于若接收到输入的缓存检测请求,基于所述缓存检测请求,获取与所述项目信息对应的预存储的缓存检测脚本;

第二获取模块,用于运行所述缓存检测脚本,基于所述缓存检测脚本的运行逻辑,获取所述目标项目的js代码;

第一生成模块,用于生成与所述js代码对应的抽象语法树;

第一存储模块,用于遍历所述抽象语法树中的所有对象,通过预设的第一获取方法获取所述抽象语法树的所有对象中包含的与各第一缓存数据一一对应的第一key,并将所有所述第一key存储于预设的第一数组内;以及,第二存储模块,用于通过预设的第二获取方法获取所述抽象语法树的所有对象中包含的与经过缓存清除处理的第二缓存数据一一对应的第二key,并将所有所述第二key存储于预设的第二数组内;

处理模块,用于将指定key分别与所述第二数组中包含的每一个所述第二key进行匹配处理,以检测所述第二数组内是否存在与所述指定key相同的目标key,得到对应的匹配结果,其中,所述指定key为所述第一数组内包含的所有所述第一key中的任意一个key,所述匹配结果包括匹配成功或匹配失败;

判定模块,用于若所述匹配结果为匹配失败,则判定与所述指定key对应的指定缓存数据未进行过清除处理;

展示模块,用于基于所述第一数组内包含的与所述第二数组内的第二key之间的匹配结果为匹配失败的第三key,获取并展示与所述第三key对应的目标缓存数据。

9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。

说明书 :

缓存数据的检测方法、装置、计算机设备和存储介质

技术领域

[0001] 本申请涉及数据处理技术领域,具体涉及一种缓存数据的检测方法、装置、计算机设备和存储介质。

背景技术

[0002] 自HTML5推出Localstorage(可称为本地存储)以来,本地存储在前端领域得到了广泛的应用。
[0003] 本地存储主要通过js代码进行操作,用于将项目中部分常用且不经常变的数据,例如用户信息、静态数据等直接存储到浏览器本地,以方便项目中的多个地方进行调用。在
开发人员对本地存储内的项目缓存数据使用过后,如果本地存储中的项目缓存数据永久存
在于浏览器本地而没有得到及时的清除处理,则可能会出现项目代码报错等问题。当用户
具有检测本地存储中是否存在未进行过清除处理的项目缓存数据的需求时,如何实现快速
地检测出本地存储中未进行过清除处理的项目缓存数据以满足用户需求,成为了目前一个
亟待解决的问题。

发明内容

[0004] 本申请的主要目的为提供一种缓存数据的检测方法、装置、计算机设备和存储介质,旨在解决现有如何实现快速地检测出本地存储中未进行过清除处理的项目缓存数据的
技术问题。
[0005] 本申请提出一种缓存数据的检测方法,所述方法包括步骤:
[0006] 判断是否接收到输入的缓存检测请求,其中,所述缓存检测请求携带有与目标项目对应的项目信息,所述缓存检测请求为用于检测本地存储中包含的与所述目标项目对应
的未进行过清除处理的缓存数据的请求;
[0007] 若接收到输入的缓存检测请求,基于所述缓存检测请求,获取与所述项目信息对应的预存储的缓存检测脚本;
[0008] 运行所述缓存检测脚本,基于所述缓存检测脚本的运行逻辑,获取所述目标项目的js代码;
[0009] 生成与所述js代码对应的抽象语法树;
[0010] 遍历所述抽象语法树中的所有对象,通过预设的第一获取方法获取所述抽象语法树的所有对象中包含的与各第一缓存数据一一对应的第一key,并将所有所述第一key存储
于预设的第一数组内;以及,
[0011] 通过预设的第二获取方法获取所述抽象语法树的所有对象中包含的与经过缓存清除处理的第二缓存数据一一对应的第二key,并将所有所述第二key存储于预设的第二数
组内;
[0012] 将指定key分别与所述第二数组中包含的每一个所述第二key进行匹配处理,以检测所述第二数组内是否存在与所述指定key相同的目标key,得到对应的匹配结果,其中,所
述指定key为所述第一数组内包含的所有所述第一key中的任意一个key,所述匹配结果包
括匹配成功或匹配失败;
[0013] 若所述匹配结果为匹配失败,则判定与所述指定key对应的指定缓存数据未进行过清除处理;
[0014] 基于所述第一数组内包含的与所述第二数组内的第二key之间的匹配结果为匹配失败的第三key,获取并展示与所述第三key对应的目标缓存数据。
[0015] 可选地,所述基于所述缓存检测请求,获取与所述项目信息对应的预存储的缓存检测脚本的步骤之前,包括:
[0016] 判断是否存在除所述缓存检测请求之外的待处理的其他任务请求;
[0017] 若存在除所述缓存检测请求之外的待处理的其他任务请求,则获取所述其他任务请求的请求数量;
[0018] 判断所述请求数量是否大于预设的数量阈值;
[0019] 若所述请求数量大于所述数量阈值,按照预设规则从所述其他任务请求中筛选出指定数量的目标任务请求;
[0020] 判断所述目标任务请求中是否存在处理时间不可调整的特定任务请求;
[0021] 若所述目标任务请求中存在所述特定任务请求,则将所述特定任务请求从所述目标任务请求中剔除,得到剔除后的目标任务请求;
[0022] 将所述剔除后的目标任务请求调整至预设的空闲时间段内进行处理,其中,所述空闲时间段与所述缓存检测请求的处理时间段不同。
[0023] 可选地,所述按照预设规则从所述其他任务请求中筛选出指定数量的目标任务请求的步骤,包括:
[0024] 确定各所述其他任务请求的资源消耗量;
[0025] 按照所述资源消耗量从大到小的顺序对所有所述其他任务请求进行排序,得到对应的第一排序结果;
[0026] 从所述第一排序结果中排在首位的其他任务请求开始,依次获取与所述指定数量相同的多个第一任务请求;
[0027] 将所有所述第一任务请求作为所述目标任务请求。
[0028] 可选地,所述按照预设规则从所述其他任务请求中筛选出指定数量的目标任务请求的步骤,包括:
[0029] 基于预设的任务请求优先级表获取各所述其他任务请求的处理优先级;
[0030] 根据所述处理优先级从低到高的顺序对所有所述其他任务请求进行排序,得到对应的第二排序结果;
[0031] 从所述第二排序结果中排在首位的其他任务请求开始,依次获取与所述指定数量相同的多个第二任务请求;
[0032] 将所述第二任务请求作为所述目标任务请求。
[0033] 可选地,所述基于所述第一数组内包含的与所述第二数组内的第二key之间的匹配结果为匹配失败的第三key,获取并展示与所述第三key对应的目标缓存数据的步骤之
后,包括:
[0034] 获取所述目标缓存数据的写入时间;以及,
[0035] 获取所述目标缓存数据的过期时长;
[0036] 基于所述写入时间与所述过期时长,计算与所述目标缓存数据对应的过期时间点;
[0037] 获取当前时间,并判断所述当前时间是否超过所述过期时间点;
[0038] 若所述当前时间超过所述过期时间点,则对所述目标缓存数据进行清除处理;
[0039] 若所述当前时间未超过所述过期时间点,则计算所述过期时间点与所述当前时间的差值;
[0040] 基于所述目标缓存数据与所述差值生成相应的过期提醒信息,并展示所述过期提醒信息。
[0041] 可选地,所述基于所述缓存检测请求,获取与所述项目信息对应的预存储的缓存检测脚本的步骤之前,包括:
[0042] 基于所述缓存检测请求,获取预存储的检测脚本模板;
[0043] 对所述缓存检测请求进行解析处理,提取出所述项目信息;
[0044] 使用所述项目信息对所述检测脚本模板进行填充处理,得到填充处理后的检测脚本模板;
[0045] 将所述处理后的检测脚本模板作为所述缓存检测脚本。
[0046] 可选地,所述基于所述第一数组内包含的与所述第二数组内的第二key之间的匹配结果为匹配失败的第三key,获取并展示与所述第三key对应的目标缓存数据的步骤之
后,包括:
[0047] 基于所述目标缓存数据,生成与所述目标缓存数据对应的警报信息;
[0048] 获取预设的邮件登录信息,以及获取预设邮件地址;
[0049] 基于所述邮件登录信息登录至对应的邮件服务器;
[0050] 通过所述邮件服务器将所述警报信息发送至所述预设邮件地址。
[0051] 本申请还提供一种缓存数据的检测装置,包括:
[0052] 第一判断模块,用于判断是否接收到输入的缓存检测请求,其中,所述缓存检测请求携带有与目标项目对应的项目信息,所述缓存检测请求为用于检测本地存储中包含的与
所述目标项目对应的未进行过清除处理的缓存数据的请求;
[0053] 第一获取模块,用于若接收到输入的缓存检测请求,基于所述缓存检测请求,获取与所述项目信息对应的预存储的缓存检测脚本;
[0054] 第二获取模块,用于运行所述缓存检测脚本,基于所述缓存检测脚本的运行逻辑,获取所述目标项目的js代码;
[0055] 第一生成模块,用于生成与所述js代码对应的抽象语法树;
[0056] 第一存储模块,用于遍历所述抽象语法树中的所有对象,通过预设的第一获取方法获取所述抽象语法树的所有对象中包含的与各第一缓存数据一一对应的第一key,并将
所有所述第一key存储于预设的第一数组内;以及,
[0057] 第二存储模块,用于通过预设的第二获取方法获取所述抽象语法树的所有对象中包含的与经过缓存清除处理的第二缓存数据一一对应的第二key,并将所有所述第二key存
储于预设的第二数组内;
[0058] 处理模块,用于将指定key分别与所述第二数组中包含的每一个所述第二key进行匹配处理,以检测所述第二数组内是否存在与所述指定key相同的目标key,得到对应的匹
配结果,其中,所述指定key为所述第一数组内包含的所有所述第一key中的任意一个key,
所述匹配结果包括匹配成功或匹配失败;
[0059] 判定模块,用于若所述匹配结果为匹配失败,则判定与所述指定key对应的指定缓存数据未进行过清除处理;
[0060] 展示模块,用于基于所述第一数组内包含的与所述第二数组内的第二key之间的匹配结果为匹配失败的第三key,获取并展示与所述第三key对应的目标缓存数据。
[0061] 本申请还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
[0062] 本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
[0063] 本申请中提供的缓存数据的检测方法、装置、计算机设备和存储介质,具有以下有益效果:
[0064] 本申请中提供的缓存数据的检测方法、装置、计算机设备和存储介质,在接收到输入的缓存检测请求后,会获取并执行与该缓存检测请求中携带的项目信息对应的检测脚
本。再基于该检测脚本的执行逻辑,使用目标项目的js代码生成对应的抽象语法树,进而根
据该抽象语法树,采用相应的获取方法快速获取所述js代码中包含的各第一缓存数据一一
对应的第一key,以及获取所述js代码中经过缓存清除处理的第二缓存数据一一对应的第
二key。最后从上述第一key中筛选出与对上述第二key之间的匹配结果为匹配失败的第三
key,提取出的与该第三key对应的目标缓存数据即为本地存储中未进行过清除处理的项目
缓存数据。本申请通过使用抽象语法树分析与目标项目对应的js代码,进而利用缓存检测
脚本实现对于缓存检测的自动化处理,可以实现快速地检测出本地缓存中未进行过清除处
理的缓存数据,提高缓存数据的检测效率。另外,通过展示该目标缓存数据,以使得相关用
户能够及时了解到本地存储中未进行过清除处理的目标缓存数据,进而后续能够根据实际
情况来对本地存储包含的目标缓存数据中已过期的缓存数据进行及时的清理处理,有利于
降低因缓存未清除的问题而导致的程序bug,提高项目代码的质量。

附图说明

[0065] 图1是本申请一实施例的缓存数据的检测方法的流程示意图;
[0066] 图2是本申请一实施例的缓存数据的检测装置的结构示意图;
[0067] 图3是本申请一实施例的计算机设备的结构示意图。
[0068] 本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

[0069] 应当理解,此处所描述的具体实施例仅仅用于解释本申请,并不用于限定本申请。
[0070] 本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该
理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的
意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义
来解释。
[0071] 参照图1,本申请一实施例的缓存数据的检测方法,包括:
[0072] S1:判断是否接收到输入的缓存检测请求,其中,所述缓存检测请求携带有与目标项目对应的项目信息,所述缓存检测请求为用于检测本地存储中包含的与所述目标项目对
应的未进行过清除处理的缓存数据的请求;
[0073] S2:若接收到输入的缓存检测请求,基于所述缓存检测请求,获取与所述项目信息对应的预存储的缓存检测脚本;
[0074] S3:运行所述缓存检测脚本,基于所述缓存检测脚本的运行逻辑,获取所述目标项目的js代码;
[0075] S4:生成与所述js代码对应的抽象语法树;
[0076] S5:遍历所述抽象语法树中的所有对象,通过预设的第一获取方法获取所述抽象语法树的所有对象中包含的与各第一缓存数据一一对应的第一key,并将所有所述第一key
存储于预设的第一数组内;以及,
[0077] S6:通过预设的第二获取方法获取所述抽象语法树的所有对象中包含的与经过缓存清除处理的第二缓存数据一一对应的第二key,并将所有所述第二key存储于预设的第二
数组内;
[0078] S7:将指定key分别与所述第二数组中包含的每一个所述第二key进行匹配处理,以检测所述第二数组内是否存在与所述指定key相同的目标key,得到对应的匹配结果,其
中,所述指定key为所述第一数组内包含的所有所述第一key中的任意一个key,所述匹配结
果包括匹配成功或匹配失败;
[0079] S8:若所述匹配结果为匹配失败,则判定与所述指定key对应的指定缓存数据未进行过清除处理;
[0080] S9:基于所述第一数组内包含的与所述第二数组内的第二key之间的匹配结果为匹配失败的第三key,获取并展示与所述第三key对应的目标缓存数据。
[0081] 浏览器在使用本地存储对项目中的相关数据进行数据缓存时,会以key/value对的格式存储。一个key/value对可以称为一个“缓存数据”,或者也可称为缓存项,例如,
“key1‑value1”是一个缓存项,“key2‑value2”是另一个缓存项。对于key/value的缓存项,
其中的key可称为索引key,可以是用于检索value时使用;其中的value可称为数据对象,数
据对象可以是客户端实际要存储至本地存储的数据,举例地,该数据可以是1001,若某个客
户端需要获取数据1001,就可以使用该数据对应的key进行检索。
[0082] 如上述步骤S1至S9所述,本方法实施例的执行主体为一种缓存数据的检测装置。在实际应用中,上述缓存数据的检测装置可以通过虚拟装置,例如软件代码实现,也可以通
过写入或集成有相关执行代码的实体装置实现,且可以与用户通过键盘、鼠标、遥控器、触
摸板或声控设备等方式进行人机交互。上述缓存数据的检测装置具体可为浏览器。本实施
例中的缓存数据的检测装置,能够快速地检测出本地缓存中未进行过清除处理的缓存数
据。具体地,首先判断是否接收到输入的缓存检测请求,其中,上述缓存检测请求携带有与
目标项目对应的项目信息,上述目标项目可为任意的业务项目,上述项目信息具体可包括
目标项目的项目名称。另外,上述缓存请求是用于检测出浏览器的本地存储中包含的与上
述目标项目对应的未进行过清除处理的项目缓存数据的请求。如果接收到输入的缓存检测
请求,基于上述缓存检测请求,获取与上述项目信息对应的预存储的缓存检测脚本。其中,
可先解析出上述缓存检测请求中的项目信息,再将该项目信息填充至预设的检测脚本模板
内以生成上述缓存检测脚本。然后运行上述缓存检测脚本,基于上述缓存检测脚本的运行
逻辑,获取上述目标项目的js代码。其中,可以通过查询相关的代码数据库,例如GitHub来
获取与目标项目的js代码。在得到了上述js代码后,生成与上述js代码对应的抽象语法树。
其中,抽象语法树(Abstract Syntax Tree,AST),或简称语法树(Syntax tree),是源代码
语法结构的一种抽象表示。它以树状的形式表现编程语言的语法结构,树上的每个节点都
表示源代码中的一种结构。另外,可基于相关的生成工具,如通过esprima工具来生成与上
述js代码对应的抽象语法树。之后遍历上述抽象语法树中的所有对象,通过预设的第一获
取方法获取上述js代码中包含的各第一缓存数据一一对应的第一key,并将所有上述第一
key存储于预设的第一数组内。其中,上述抽象语法树是多个对象形成的数组,把
JavaScript语句拆分成一个一个零件,即对象,通过使用抽象语法树来分析上述js代码,可
对整个js代码中包含的缓存数据进行全面检索,以快速识别出该js代码中所有使用过的缓
存数据,避免出现遗漏现象。另外,上述第一获取方法为setItem()方法,通过该setItem()
方法能够获取到上述js代码中包含的各第一缓存数据一一对应的第一key,以便后续根据
该第一key来快速检测出js代码中没有进行过清除处理的缓存数据。此外,预先设置的上述
第一数组内不包含有数据。以及通过预设的第二获取方法获取上述js代码中经过缓存清除
处理的第二缓存数据一一对应的第二key,并将所有上述第二key存储于预设的第二数组
内。其中,上述第二获取方法为removeItem()方法,基于抽象语法树对目标项目的js代码
进行分析,能够快速识别出该js代码中所有使用过的缓存数据是否进行过清除处理,并能
够提取出该js代码中包含的未经过清除处理的缓存数据所分别对应的第二key,以便后续
根据该第二key来快速检测出js代码中没有进行过清除处理的缓存数据。然后将指定key分
别与上述第二数组中包含的每一个上述第二key进行匹配处理,以检测上述第二数组内是
否存在与上述指定key相同的目标key,得到对应的匹配结果,其中,上述指定key为上述第
一数组内包含的所有上述第一key中的任意一个key,上述匹配结果包括匹配成功或匹配失
败,且预先设置的上述第二数组内不包含有数据。另外,可基于并行数据比较指令比较上述
指定key与上述第二数组中包含的任意一个第二key是否相同。上述并行数据比较指令具体
可为单指令流多数据流(single instruction multiple data,SIMD)指令,通过利用并行
比较指令的并行计算能力来同时进行该上述指定key与上述第二数组中包含的任意一个第
二key的数据匹配处理,有助于进一步提高数据匹配的处理速率,以及提高生成数据匹配结
果的生成速度。如果上述匹配结果为匹配失败,则判定与上述指定key对应的指定缓存数据
未进行过清除处理。其中,如果指定key只存在于第一数组内而不存在于第二数组内,则可
判定与上述指定key对应的指定缓存数据未进行过清除处理。只有当指定key同时存在于上
述第一数组与上述第二数组内时,才可判定与该指定key对应的指定缓存数据为已进行过
清除处理的数据。最后基于上述第一数组内包含的与上述第二数组内的第二key之间的匹
配结果为匹配失败的第三key,获取并展示与上述第三key对应的目标缓存数据。其中,上述
匹配失败的匹配结果是指对于第一数组内包含的第三key,在第二数组内包含的所有第二
key中不存在与该第三key相同的key。本实施例通过使用抽象语法树分析与目标项目对应
的js代码,进而利用缓存检测脚本实现对于缓存检测的自动化处理,可以实现快速地检测
出本地缓存中未进行过清除处理的缓存数据,提高缓存数据的检测效率。另外,通过展示该
目标缓存数据,以使得相关用户能够及时了解到本地存储中未进行过清除处理的目标缓存
数据,进而后续能够根据实际情况来对本地存储包含的目标缓存数据中已过期的缓存数据
进行及时的清理处理,有利于降低因缓存未清除的问题而导致的程序bug,提高项目代码的
质量。
[0083] 进一步地,本申请一实施例中,上述步骤S2之前,包括:
[0084] S200:判断是否存在除所述缓存检测请求之外的待处理的其他任务请求;
[0085] S201:若存在除所述缓存检测请求之外的待处理的其他任务请求,则获取所述其他任务请求的请求数量;
[0086] S202:判断所述请求数量是否大于预设的数量阈值;
[0087] S203:若所述请求数量大于所述数量阈值,按照预设规则从所述其他任务请求中筛选出指定数量的目标任务请求;
[0088] S204:判断所述目标任务请求中是否存在处理时间不可调整的特定任务请求;
[0089] S205:若所述目标任务请求中存在所述特定任务请求,则将所述特定任务请求从所述目标任务请求中剔除,得到剔除后的目标任务请求;
[0090] S206:将所述剔除后的目标任务请求调整至预设的空闲时间段内进行处理,其中,所述空闲时间段与所述缓存检测请求的处理时间段不同。
[0091] 如上述步骤S200至S206所述,在进行对于上述缓存检测请求的处理过程中,还会智能地将当前存在的待处理的部分其他任务请求分配至不同于当前时间段的其他时间段
内进行处理,以避免其他任务请求对当前的缓存检测请求的正常处理造成影响,从而有效
保证上述缓存检测请求的正常处理。具体地,上述基于上述缓存检测请求,获取与上述项目
信息对应的预存储的缓存检测脚本的步骤之前还可包括:首先判断是否存在除上述缓存检
测请求之外的待处理的其他任务请求。如果存在除上述缓存检测请求之外的待处理的其他
任务请求,则获取上述其他任务请求的请求数量。然后判断上述请求数量是否大于预设的
数量阈值。其中,对于上述数量阈值不作具体限定,可根据实际需求进行设置,例如可根据
统计分析相关历史数据后得到的经验值来生成。如果上述请求数量大于上述数量阈值,按
照预设规则从上述其他任务请求中筛选出指定数量的目标任务请求。其中,对于上述指定
数量不作具体限定,可根据实际需求确定,只需保证指定数量不大于上述其他任务请求的
数量即可。另外,对于上述预设规则不作具体限定,例如该预设规则可包括:基于各上述其
他任务请求的资源消耗量,从上述其他任务请求中筛选出处理资源消耗量最大的指定数量
的任务请求作为上述目标任务请求;或者该预设规则还可包括:基于各上述其他任务请求
的处理优先级,从上述其他任务请求中筛选出处理优先级最低的指定数量的任务请求作为
上述目标任务请求。之后判断上述目标任务中是否存在处理时间不可调整的特定任务请
求。其中,可基于任务请求的任务属性来判断该任务请求是否属于任务时间不可调整的特
定任务请求,具体可以预先设定相应的规则,如果任务请求的任务属性满足预设条件,则确
定其属于任务时间不可调整的特定任务请求。上述预设条件可根据实际需求进行设置,举
例地,上述预设条件可为任务请求所属业务为预设的指定业务,或者任务请求属于预设的
指定业务类型。如果上述目标任务中存在上述特定任务请求,则将上述特定任务从上述目
标任务请求中剔除,得到剔除后的目标任务请求。最后将上述剔除后的目标任务请求调整
至预设的空闲时间段内进行处理,其中,上述空闲时间段与上述缓存检测请求的处理时间
段不同。
[0092] 进一步地,本申请一实施例中,上述步骤S203,包括:
[0093] S2030:确定各所述其他任务请求的资源消耗量;
[0094] S2031:按照所述资源消耗量从大到小的顺序对所有所述其他任务请求进行排序,得到对应的第一排序结果;
[0095] S2032:从所述第一排序结果中排在首位的其他任务请求开始,依次获取与所述指定数量相同的多个第一任务请求;
[0096] S2033:将所有所述第一任务请求作为所述目标任务请求。
[0097] 如上述步骤S2030至S2033所述,上述按照预设规则从上述其他任务请求中筛选出指定数量的目标任务请求的步骤,具体可包括:首先确定各上述其他任务请求的资源消耗
量。其中,上述资源消耗量是指执行任务请求时所需消耗的存储空间或CPU或流量。另外,可
通过查询历史任务请求所对应的资源消耗统计数据来查询出各上述其他任务请求的历史
资源消耗量,具体的,可基于该资源消耗统计数据查询出在预设时间周期内指定其他任务
请求每一次的指定历史资源消耗量,再计算所有指定历史资源消耗量的平均值来作为与指
定其他任务请求对应的资源消耗量,上述指定其他任务请求为所有上述其他任务请求中的
任意一个任务请求。然后按照上述资源消耗量从大到小的顺序对所有上述其他任务请求进
行排序,得到对应的第一排序结果。之后从上述第一排序结果中排在首位的其他任务请求
开始,依次获取与上述指定数量相同的多个第一任务请求。最后将所有上述第一任务请求
作为上述目标任务请求。本实施例通过基于资源消耗量从所有其他任务请求中提取出资源
消耗量较大的第一任务请求来作为上述目标任务请求,使得后续智能地会将处理资源消耗
量较大的任务请求调整至不同于当前时间段的空闲时间进行处理,能够避免此部分任务请
求会对当前的缓存检测请求的正常处理造成影响,有效保证上述缓存检测请求的正常处
理,提高了缓存检测请求处理的智能性。
[0098] 进一步地,本申请一实施例中,上述步骤S203,包括:
[0099] S2034:基于预设的任务请求优先级表获取各所述其他任务请求的处理优先级;
[0100] S2035:根据所述处理优先级从低到高的顺序对所有所述其他任务请求进行排序,得到对应的第二排序结果;
[0101] S2036:从所述第二排序结果中排在首位的其他任务请求开始,依次获取与所述指定数量相同的多个第二任务请求;
[0102] S2037:将所述第二任务请求作为所述目标任务请求。
[0103] 如上述步骤S2034至S2037所述,上述按照预设规则从上述其他任务请求中筛选出指定数量的目标任务请求的步骤,包括:基于预设的任务请求优先级表获取各上述其他任
务请求的处理优先级。其中,预先创建有一个任务请求优先级表,该任务请求优先级表记录
有不同任务请求的请求标识,以及与各请求标识一一对应的处理优先级序号。请求标识对
应的处理优先级序号越小,则该请求标识对应的任务请求的处理优先级越高。根据上述处
理优先级从低到高的顺序对所有上述其他任务请求进行排序,得到对应的第二排序结果;
从上述第二排序结果中排在首位的其他任务请求开始,依次获取与上述指定数量相同的多
个第二任务请求;将上述第二任务请求作为上述目标任务请求。本实施例通过基于处理优
先级从所有其他任务请求中提取出处理优先级较低的第二任务请求来作为上述目标任务
请求,使得后续会智能地将处理优先级较低的任务请求调整至不同于当前时间段的空闲时
间内进行处理,能够避免此部分任务请求会对当前的缓存检测请求的正常处理造成影响,
有效保证上述缓存检测请求的正常处理,提高了缓存检测请求处理的智能性。
[0104] 进一步地,本申请一实施例中,上述步骤S9之后,包括:
[0105] S900:获取所述目标缓存数据的写入时间;以及,
[0106] S901:获取所述目标缓存数据的过期时长;
[0107] S902:基于所述写入时间与所述过期时长,计算与所述目标缓存数据对应的过期时间点;
[0108] S903:获取当前时间,并判断所述当前时间是否超过所述过期时间点;
[0109] S904:若所述当前时间超过所述过期时间点,则对所述目标缓存数据进行清除处理;
[0110] S905:若所述当前时间未超过所述过期时间点,则计算所述过期时间点与所述当前时间的差值;
[0111] S906:基于所述目标缓存数据与所述差值生成相应的过期提醒信息,并展示所述过期提醒信息。
[0112] 如上述步骤S900至S906所述,缓存数据在本地存储中的存储时间如果超过了指定的生存时长,就不能被访问到,即缓存数据已处于过期状态。对处于过期状态的缓存数据进
行的清除处理操作可称为对于缓存数据的生命周期管理。在执行完上述基于上述第一数组
内包含的与上述第二数组内的第二key之间的匹配结果为匹配失败的第三key,获取并展示
与上述第三key对应的目标缓存数据的步骤之后,还可对上述目标缓存数据进行相应的生
命周期管理合理。具体地,首先获取上述目标缓存数据的写入时间,以及获取上述目标缓存
数据的过期时长。其中,上述写入时间是指目标缓存数据首次存储于本地存储内的时间。上
述过期时长是指该目标缓存数据的生存时间长度,如果目标缓存数据在本地存储中的存储
时长大于该过期时长,则表示该目标缓存数据已处于过期状态,即没有了实际的使用价值。
然后基于上述写入时间与上述过期时长,计算与上述目标缓存数据对应的过期时间点。其
中,可计算写入时间与过期时长之间的和值,该和值所对应的时间便为上述过期时间点。之
后获取当前时间,并判断上述当前时间是否超过上述过期时间点。如果上述当前时间超过
上述过期时间点,则对上述目标缓存数据进行清除处理。而如果上述当前时间未超过上述
过期时间点,则计算上述过期时间点与上述当前时间的差值。再基于上述目标缓存数据与
上述差值生成相应的过期提醒信息,并展示上述过期提醒信息。其中,上述过期提醒信息至
少包括目标缓存数据与上述差值。本实施例在检测出了未进行过清除处理的目标缓存数据
后,当判定该目标缓存数据当前处于过期状态时,会智能地对该目标缓存数据进行清除处
理,以有效节省珍贵的本地存储资源,避免出现由于过期的缓存数据没有得到及时的清理
处理导致后续环节出现数据问题甚至项目代码报错的情况。另外,如果目标缓存数据当前
处于未过期状态时,还会计算出该目标缓存数据的剩余有效生存时长并生成相应的过期提
醒信息,以便相关用户能够基于该过期提醒信息清楚了解到目标缓存数据当前的生存信
息,以便后续能够及时执行对于该目标缓存数据的清除处理工作。
[0113] 进一步地,本申请一实施例中,上述步骤S2之前,包括:
[0114] S210:基于所述缓存检测请求,获取预存储的检测脚本模板;
[0115] S211:对所述缓存检测请求进行解析处理,提取出所述项目信息;
[0116] S212:使用所述项目信息对所述检测脚本模板进行填充处理,得到填充处理后的检测脚本模板;
[0117] S213:将所述处理后的检测脚本模板作为所述缓存检测脚本。
[0118] 如上述步骤S210至S213所述,在执行上述基于上述缓存检测请求,获取与上述项目信息对应的预存储的缓存检测脚本的步骤之前,还可包括生成上述缓存检测脚本的生成
过程。具体地,首先基于上述缓存检测请求,获取预存储的检测脚本模板。其中,针对于缓存
检测请求的操作处理,会预先设置有与缓存检测相对应的检测脚本模板,上述检测脚本模
板可由开发人员根据实际的缓存检测需求编写生成,且该检测脚本模板中的项目字段对应
的变量参数为待填充状态。然后对上述缓存检测请求进行解析处理,提取出上述项目信息。
之后使用上述项目信息对上述检测脚本模板进行填充处理,得到填充处理后的检测脚本模
板。其中,上述检测脚本模板内包含有用于执行项目缓存数据检测的检测代码,通过先确定
出该检测模板内的项目字段所对应的信息填充位置,再将上述项目信息填充至该信息填充
位置便能生成与目标项目对应的缓存检测脚本,以实现通过在检测脚本模板中填入不同项
目所对应的项目变量参数,进而生成与不同项目分别对应的缓存检测脚本。最后将上述处
理后的检测脚本模板作为上述缓存检测脚本。本实施例通过使用检测脚本实现对于缓存检
测的自动化处理,可以有效节省开发人员的人工检测时间,提高缓存数据检测的处理效率。
[0119] 进一步地,本申请一实施例中,上述步骤S9之后,包括:
[0120] S910:基于所述目标缓存数据,生成与所述目标缓存数据对应的警报信息;
[0121] S911:获取预设的邮件登录信息,以及获取预设邮件地址;
[0122] S912:基于所述邮件登录信息登录至对应的邮件服务器;
[0123] S913:通过所述邮件服务器将所述警报信息发送至所述预设邮件地址。
[0124] 如上述步骤S910至S913所述,上述基于上述第一数组内包含的与上述第二数组内的第二key之间的匹配结果为匹配失败的第三key,获取并展示与上述第三key对应的目标
缓存数据的步骤之后,还可包括生成与上述目标缓存数据相应的警报信息的生成过程。具
体地,首先基于上述目标缓存数据,生成与上述目标缓存数据对应的警报信息。其中,上述
警报信息至少包括上述目标缓存数据,可将该目标缓存数据填入至预先创建的警报信息模
板内来生成上述警报信息。另外,上述警报信息模板由开发人员根据实际的使用需求编写
生成。然后获取预设的邮件登录信息,以及获取预设邮件地址。其中,上述邮件登录信息是
用于登录邮件服务器的信息,上述预设邮件地址是用于接收上述警报信息的相关用户的邮
件地址信息。之后基于上述邮件登录信息登录至对应的邮件服务器。最后通过上述邮件服
务器将上述警报信息发送至上述预设邮件地址。本实施例通过使用邮件服务器将该上述目
标缓存数据对应的警报信息发送至预设邮件地址,以使得相关用户能够及时了解到与目标
项目对应的未进行过清除处理的目标缓存数据,进而后续能够根据实际情况来对本地存储
包含的目标缓存数据中已过期的缓存数据进行及时的清理处理,有效节省本地存储资源,
避免出现由于过期的缓存数据没有得到及时的清理处理导致后续环节出现数据问题甚至
项目代码报错的情况。
[0125] 本申请实施例中的缓存数据的检测方法还可以应用于区块链领域,如将上述目标缓存数据等数据存储于区块链上。通过使用区块链来对上述目标缓存数据进行存储和管
理,能够有效地保证上述目标缓存数据的安全性与不可篡改性。
[0126] 上述区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学
方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信
息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层
以及应用服务层等。
[0127] 区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账
户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授
权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);
基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求
完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处
理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传
输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合
约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约
注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提
供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合
约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控
节点设备健康状态等。
[0128] 参照图2,本申请一实施例中还提供了一种缓存数据的检测装置,包括:
[0129] 第一判断模块1,用于判断是否接收到输入的缓存检测请求,其中,所述缓存检测请求携带有与目标项目对应的项目信息,所述缓存检测请求为用于检测本地存储中包含的
与所述目标项目对应的未进行过清除处理的缓存数据的请求;
[0130] 第一获取模块2,用于若接收到输入的缓存检测请求,基于所述缓存检测请求,获取与所述项目信息对应的预存储的缓存检测脚本;
[0131] 第二获取模块3,用于运行所述缓存检测脚本,基于所述缓存检测脚本的运行逻辑,获取所述目标项目的js代码;
[0132] 第一生成模块4,用于生成与所述js代码对应的抽象语法树;
[0133] 第一存储模块5,用于遍历所述抽象语法树中的所有对象,通过预设的第一获取方法获取所述抽象语法树的所有对象中包含的与各第一缓存数据一一对应的第一key,并将
所有所述第一key存储于预设的第一数组内;以及,
[0134] 第二存储模块6,用于通过预设的第二获取方法获取所述抽象语法树的所有对象中包含的与经过缓存清除处理的第二缓存数据一一对应的第二key,并将所有所述第二key
存储于预设的第二数组内;
[0135] 处理模块7,用于将指定key分别与所述第二数组中包含的每一个所述第二key进行匹配处理,以检测所述第二数组内是否存在与所述指定key相同的目标key,得到对应的
匹配结果,其中,所述指定key为所述第一数组内包含的所有所述第一key中的任意一个
key,所述匹配结果包括匹配成功或匹配失败;
[0136] 判定模块8,用于若所述匹配结果为匹配失败,则判定与所述指定key对应的指定缓存数据未进行过清除处理;
[0137] 展示模块9,用于基于所述第一数组内包含的与所述第二数组内的第二key之间的匹配结果为匹配失败的第三key,获取并展示与所述第三key对应的目标缓存数据。
[0138] 本实施例中,上述缓存数据的检测装置中的第一判断模块、第一获取模块、第二获取模块、第一生成模块、第一存储模块、第二存储模块、处理模块、判定模块与展示模块的功
能和作用的实现过程具体详见上述缓存数据的检测方法中对应步骤S1至S9的实现过程,在
此不再赘述。
[0139] 进一步地,本申请一实施例中,上述缓存数据的检测装置,包括:
[0140] 第二判断模块,用于判断是否存在除所述缓存检测请求之外的待处理的其他任务请求;
[0141] 第三获取模块,用于若存在除所述缓存检测请求之外的待处理的其他任务请求,则获取所述其他任务请求的请求数量;
[0142] 第三判断模块,用于判断所述请求数量是否大于预设的数量阈值;
[0143] 筛选模块,用于若所述请求数量大于所述数量阈值,按照预设规则从所述其他任务请求中筛选出指定数量的目标任务请求;
[0144] 第四判断模块,用于判断所述目标任务请求中是否存在处理时间不可调整的特定任务请求;
[0145] 剔除模块,用于若所述目标任务请求中存在所述特定任务请求,则将所述特定任务请求从所述目标任务请求中剔除,得到剔除后的目标任务请求;
[0146] 调整模块,用于将所述剔除后的目标任务请求调整至预设的空闲时间段内进行处理,其中,所述空闲时间段与所述缓存检测请求的处理时间段不同。
[0147] 本实施例中,上述缓存数据的检测装置中的第二判断模块、第三获取模块、第三判断模块、筛选模块、第四判断模块、剔除模块与调整模块的功能和作用的实现过程具体详见
上述缓存数据的检测方法中对应步骤S200至S206的实现过程,在此不再赘述。
[0148] 进一步地,本申请一实施例中,上述筛选模块,包括:
[0149] 第一确定单元,用于确定各所述其他任务请求的资源消耗量;
[0150] 第一排序单元,用于按照所述资源消耗量从大到小的顺序对所有所述其他任务请求进行排序,得到对应的第一排序结果;
[0151] 第一获取单元,用于从所述第一排序结果中排在首位的其他任务请求开始,依次获取与所述指定数量相同的多个第一任务请求;
[0152] 第二确定单元,用于将所有所述第一任务请求作为所述目标任务请求。
[0153] 本实施例中,上述缓存数据的检测装置中的第一确定单元、第一排序单元、第一获取单元与第二确定单元的功能和作用的实现过程具体详见上述缓存数据的检测方法中对
应步骤S2030至S2033的实现过程,在此不再赘述。
[0154] 进一步地,本申请一实施例中,上述筛选模块,包括:
[0155] 第二获取单元,用于基于预设的任务请求优先级表获取各所述其他任务请求的处理优先级;
[0156] 第二排序单元,用于根据所述处理优先级从低到高的顺序对所有所述其他任务请求进行排序,得到对应的第二排序结果;
[0157] 第三获取单元,用于从所述第二排序结果中排在首位的其他任务请求开始,依次获取与所述指定数量相同的多个第二任务请求;
[0158] 第三确定单元,用于将所述第二任务请求作为所述目标任务请求。
[0159] 本实施例中,上述缓存数据的检测装置中的第二获取单元、第二排序单元、第三获取单元与第三确定单元的功能和作用的实现过程具体详见上述缓存数据的检测方法中对
应步骤S2034至S2037的实现过程,在此不再赘述。
[0160] 进一步地,本申请一实施例中,上述缓存数据的检测装置,包括:
[0161] 第四获取模块,用于获取所述目标缓存数据的写入时间;以及,
[0162] 第五获取模块,用于获取所述目标缓存数据的过期时长;
[0163] 第一计算模块,用于基于所述写入时间与所述过期时长,计算与所述目标缓存数据对应的过期时间点;
[0164] 第五判断模块,用于获取当前时间,并判断所述当前时间是否超过所述过期时间点;
[0165] 清除模块,用于若所述当前时间超过所述过期时间点,则对所述目标缓存数据进行清除处理;
[0166] 第二计算模块,用于若所述当前时间未超过所述过期时间点,则计算所述过期时间点与所述当前时间的差值;
[0167] 第二生成模块,用于基于所述目标缓存数据与所述差值生成相应的过期提醒信息,并展示所述过期提醒信息。
[0168] 本实施例中,上述缓存数据的检测装置中的第四获取模块、第五获取模块、第一计算模块、第五判断模块、清除模块、第二计算模块与第二生成模块的功能和作用的实现过程
具体详见上述缓存数据的检测方法中对应步骤S900至S906的实现过程,在此不再赘述。
[0169] 进一步地,本申请一实施例中,上述缓存数据的检测装置,包括:
[0170] 第六获取模块,用于基于所述缓存检测请求,获取预存储的检测脚本模板;
[0171] 提取模块,用于对所述缓存检测请求进行解析处理,提取出所述项目信息;
[0172] 填充模块,用于使用所述项目信息对所述检测脚本模板进行填充处理,得到填充处理后的检测脚本模板;
[0173] 确定模块,用于将所述处理后的检测脚本模板作为所述缓存检测脚本。
[0174] 本实施例中,上述缓存数据的检测装置中的第六获取模块、提取模块、填充模块与确定模块的功能和作用的实现过程具体详见上述缓存数据的检测方法中对应步骤S210至
S213的实现过程,在此不再赘述。
[0175] 进一步地,本申请一实施例中,上述缓存数据的检测装置,包括:
[0176] 第三生成模块,用于基于所述目标缓存数据,生成与所述目标缓存数据对应的警报信息;
[0177] 第七获取模块,用于获取预设的邮件登录信息,以及获取预设邮件地址;
[0178] 登录模块,用于基于所述邮件登录信息登录至对应的邮件服务器;
[0179] 发送模块,用于通过所述邮件服务器将所述警报信息发送至所述预设邮件地址。
[0180] 本实施例中,上述缓存数据的检测装置中的第三生成模块、第七获取模块、登录模块与发送模块的功能和作用的实现过程具体详见上述缓存数据的检测方法中对应步骤
S910至S913的实现过程,在此不再赘述。
[0181] 参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络
接口、显示屏、输入装置和数据库。其中,该计算机设备设计的处理器用于提供计算和控制
能力。该计算机设备的存储器包括存储介质、内存储器。该存储介质存储有操作系统、计算
机程序和数据库。该内存储器为存储介质中的操作系统和计算机程序的运行提供环境。该
计算机设备的数据库用于存储缓存检测脚本、抽象语法树、第一key、第二key、第一数组、第
二数组以及目标缓存数据等数据。该计算机设备的网络接口用于与外部的终端通过网络连
接通信。该计算机设备的显示屏是计算机中必不可少的一种图文输出设备,用于将数字信
号转换为光信号,使文字与图形在显示屏的屏幕上显示出来。该计算机设备的输入装置是
计算机与用户或其他设备之间进行信息交换的主要装置,用于把数据、指令及某些标志信
息等输送到计算机中去。该计算机程序被处理器执行时以实现一种缓存数据的检测方法。
[0182] 上述处理器执行上述缓存数据的检测方法的步骤:
[0183] 判断是否接收到输入的缓存检测请求,其中,所述缓存检测请求携带有与目标项目对应的项目信息,所述缓存检测请求为用于检测本地存储中包含的与所述目标项目对应
的未进行过清除处理的缓存数据的请求;
[0184] 若接收到输入的缓存检测请求,基于所述缓存检测请求,获取与所述项目信息对应的预存储的缓存检测脚本;
[0185] 运行所述缓存检测脚本,基于所述缓存检测脚本的运行逻辑,获取所述目标项目的js代码;
[0186] 生成与所述js代码对应的抽象语法树;
[0187] 遍历所述抽象语法树中的所有对象,通过预设的第一获取方法获取所述抽象语法树的所有对象中包含的与各第一缓存数据一一对应的第一key,并将所有所述第一key存储
于预设的第一数组内;以及,
[0188] 通过预设的第二获取方法获取所述抽象语法树的所有对象中包含的与经过缓存清除处理的第二缓存数据一一对应的第二key,并将所有所述第二key存储于预设的第二数
组内;
[0189] 将指定key分别与所述第二数组中包含的每一个所述第二key进行匹配处理,以检测所述第二数组内是否存在与所述指定key相同的目标key,得到对应的匹配结果,其中,所
述指定key为所述第一数组内包含的所有所述第一key中的任意一个key,所述匹配结果包
括匹配成功或匹配失败;
[0190] 若所述匹配结果为匹配失败,则判定与所述指定key对应的指定缓存数据未进行过清除处理;
[0191] 基于所述第一数组内包含的与所述第二数组内的第二key之间的匹配结果为匹配失败的第三key,获取并展示与所述第三key对应的目标缓存数据。
[0192] 本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的装置、计算机设备的限定。
[0193] 本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种缓存数据的检测方法,具体为:
[0194] 判断是否接收到输入的缓存检测请求,其中,所述缓存检测请求携带有与目标项目对应的项目信息,所述缓存检测请求为用于检测本地存储中包含的与所述目标项目对应
的未进行过清除处理的缓存数据的请求;
[0195] 若接收到输入的缓存检测请求,基于所述缓存检测请求,获取与所述项目信息对应的预存储的缓存检测脚本;
[0196] 运行所述缓存检测脚本,基于所述缓存检测脚本的运行逻辑,获取所述目标项目的js代码;
[0197] 生成与所述js代码对应的抽象语法树;
[0198] 遍历所述抽象语法树中的所有对象,通过预设的第一获取方法获取所述抽象语法树的所有对象中包含的与各第一缓存数据一一对应的第一key,并将所有所述第一key存储
于预设的第一数组内;以及,
[0199] 通过预设的第二获取方法获取所述抽象语法树的所有对象中包含的与经过缓存清除处理的第二缓存数据一一对应的第二key,并将所有所述第二key存储于预设的第二数
组内;
[0200] 将指定key分别与所述第二数组中包含的每一个所述第二key进行匹配处理,以检测所述第二数组内是否存在与所述指定key相同的目标key,得到对应的匹配结果,其中,所
述指定key为所述第一数组内包含的所有所述第一key中的任意一个key,所述匹配结果包
括匹配成功或匹配失败;
[0201] 若所述匹配结果为匹配失败,则判定与所述指定key对应的指定缓存数据未进行过清除处理;
[0202] 基于所述第一数组内包含的与所述第二数组内的第二key之间的匹配结果为匹配失败的第三key,获取并展示与所述第三key对应的目标缓存数据。
[0203] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于计算机可读取存储
介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提
供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失
性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电
可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存
储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM通过多种形式可得,诸如静态
RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM
(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直
接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
[0204] 需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而
且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有
的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该
要素的过程、装置、物品或者方法中还存在另外的相同要素。
[0205] 以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关
的技术领域,均同理包括在本申请的专利保护范围内。