一种数据超时管理方法、装置、电子设备及可读存储介质与流程
未命名
10-26
阅读:91
评论:0
1.本发明涉及计算机技术领域,尤其涉及一种数据超时管理方法、装置、电子设备及可读存储介质。
背景技术:
2.远程字典服务(remote dictionary server,redis)是一款完全开源的,且遵守伯克利软件发行版(berkeley software distribution,bsd)协议的高性能数据库,其中,redis包括有字符串(string)、链表(list)、集合(set)、有序集合(sorted set)和哈希类型(hash)五种数据类型,其中,hash是一个string类型的字段(field)和值(value)的映射表,hash类型特别适合于存储对象。
3.现有技术中,redis支持对hash类型的缓存设置一个过期时间,即对指定的键(key)设置过期时间,但是无法对key里面的每个field设置过期时间。
4.可见,现有技术中存在对哈希类型超时管理效果较差的问题。
技术实现要素:
5.本发明实施例提供一种数据超时管理方法、装置、电子设备及可读存储介质,以解决现有技术中存在对哈希类型超时管理效果较差的问题
6.为解决上述问题,本发明是这样实现的:
7.第一方面,本发明实施例提供一种数据超时管理方法,包括:
8.获取数据库redis中的超时设置信息,所述超时设置信息包括哈希类型hash对应的键key和过期时间,所述哈希类型为key、域field和值value的三元组;
9.依据所述哈希类型的当前key确定所述哈希类型的超时设置类型,所述超时设置类型包括第一类型和第二类型,其中,所述第一类型表示对field的超时设置,所述第二类型表示对当前key的超时设置;
10.在所述超时设置类型为所述第一类型的情况下,依据当前key创建第一字符串string,其中,所述第一字符串的value对应所述过期时间;
11.依据所述第一字符串对所述哈希类型中的field进行超时设置。
12.第二方面,本发明实施例还提供一种数据超时管理装置,包括:
13.第一获取模块,用于获取数据库redis中的超时设置信息,所述超时设置信息包括哈希类型hash对应的键key和过期时间,所述哈希类型为key、域field和值value的三元组;
14.确定模块,用于依据所述哈希类型的当前key确定所述哈希类型的超时设置类型,所述超时设置类型包括第一类型和第二类型,其中,所述第一类型表示对field的超时设置,所述第二类型表示对当前key的超时设置;
15.第一创建模块,用于在所述超时设置类型为所述第一类型的情况下,依据当前key创建第一字符串string,其中,所述第一字符串的value对应所述过期时间;
16.设置模块,用于依据所述第一字符串对所述哈希类型中的field进行超时设置。
17.第三方面,本发明实施例还提供一种电子设备,包括收发机和处理器,
18.所述收发机,用于获取数据库redis中的超时设置信息,所述超时设置信息包括哈希类型hash对应的键key和过期时间,所述哈希类型为key、域field和值value的三元组;
19.所述处理器,用于依据所述哈希类型的当前key确定所述哈希类型的超时设置类型,所述超时设置类型包括第一类型和第二类型,其中,所述第一类型表示对field的超时设置,所述第二类型表示对当前key的超时设置;
20.所述处理器,还用于在所述超时设置类型为所述第一类型的情况下,依据当前key创建第一字符串string,其中,所述第一字符串的value对应所述过期时间;
21.所述处理器,还用于依据所述第一字符串对所述哈希类型中的field进行超时设置。
22.第四方面,本发明实施例还提供一种电子设备,收发机、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序;其特征在于,所述处理器,用于读取存储器中的程序实现如第一方面所述的数据超时管理方法中的步骤。
23.第五方面,本发明实施例还提供一种可读存储介质,用于存储程序,所述程序被处理器执行时实现上述第一方面所述的数据超时管理方法中的步骤。
24.本发明实施例中,首先获取数据库redis中的超时设置信息,应理解,该超时设置信息对应数据库redis中的哈希类型,并且超时设置信息中包括哈希类型对应的键key和过期时间,然后依据哈希类型的当前key判断超时设置针对的对象,在判断是对域field进行超时设置的情况下,依据当前key创建第一字符串string,最后以超时设置信息中的过期时间对第一字符串进行超时设置,即完成对哈希类型中的field进行设置。采用本发明实施例的技术方案,通过引入第一字符串来对哈希类型中的field进行超时设置,从而提高对哈希类型的超时管理效果。
附图说明
25.为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
26.图1是本发明实施例提供的一种数据超时管理方法的流程示意图;
27.图2是本发明实施例提供的一种数据超时管理装置的结构示意图;
28.图3是本发明实施例提供的一种通信设备的结构图。
具体实施方式
29.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
30.本发明实施例中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖
不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
31.请参见图1,图1是本发明实施例提供的一种数据超时管理方法的流程图,如图1所示,包括以下步骤:
32.步骤101、获取数据库redis中的超时设置信息,所述超时设置信息包括哈希类型hash对应的键key和过期时间,所述哈希类型为key、域field和值value的三元组;
33.步骤102、依据所述哈希类型的当前key确定所述哈希类型的超时设置类型,所述超时设置类型包括第一类型和第二类型,其中,所述第一类型表示对field的超时设置,所述第二类型表示对当前key的超时设置;
34.步骤103、在所述超时设置类型为所述第一类型的情况下,依据当前key创建第一字符串string,其中,所述第一字符串的value对应所述过期时间;
35.步骤104、依据所述第一字符串对所述哈希类型中的field进行超时设置。
36.其中,上述轨迹点的确定方法所包括的步骤101、步骤102、步骤103以及步骤104可以是由电子设备来执行,例如计算机等设备,对此本发明实施例不作限定。
37.首先,远程字典服务(remote dictionary server,redis)是一款完全开源的,且遵守伯克利软件发行版(berkeley software distribution,bsd)协议的高性能数据库,上述数据超时管理方法所包括的步骤101、步骤102、步骤103以及步骤104可以是基于java探针技术执行,java类编译之后形成字节码被java虚拟机(java virtual machine,jvm)执行,而java探针可以在jvm执行这些字节码之前对这些字节码进行获取,并且通过字节码转换器对这些字节码进行修改,从而完成功能的添加。
38.需要说明的是,在调用java探针之前,需要根据开发规范进行插件的开发,在要执行的程序中添加相关参数,从而使得在程序运行之后,根据插件的内容进行字节码的插入,进而实现功能的增强。
39.应理解,在程序运行时是通过运行相关参数来加载插件,因此在执行上述步骤102至步骤104的过程中对代码是无浸入的。
40.在步骤101中,上述超时设置信息可以是包括哈希类型对应的key和过期时间,应理解,数据库redis提供有expire系列命令来对不同数据类型进行超时设置,但是超时设置只能针对键key,而哈希类型可以表示为三元组,例如:[key,field,value],因此在对数据库redis中的哈希类型进行超时设置时,超时设置信息中的key可以理解为目标哈希类型中key和field按照一定拼接规则拼接的新key。
[0041]
另外,上述过期时间可以根据用户的需求进行设置,例如:用户将过期时间设置为24小时,那么在超时设置成功的24小时之后,需要对存储在数据库中的数据进行删除。
[0042]
需要说明的是,步骤101中获取上述超时设置信息的操作可以理解为利用插件对设置超时的expire系列命令进行拦截。
[0043]
在步骤102中,判断用户设置超时的实际目的,即判断用户对哈希类型中的key进行超时设置还是对哈希类型中的field进行超时设置,其中,可以对上述超时设置信息中的key进行解析处理,在上文中说到,超时设置信息中的key可以理解为目标哈希类型中key和field按照一定拼接规则拼接的新key,因此我们可以对上述超时设置信息中的key进行解
析,看是否能够解析出对应哈希类型的key和field,若可以,则表示用户设置超时的目的就是对field进行超时设置。
[0044]
需要说明的是,在上述超时设置类型为第二类型的情况下,即用户对当前key进行超时设置,那么继续调用expire系列命令对当前key进行超时设置。
[0045]
在步骤103中,依据当前key创建上述第一字符串,并且上述第一字符串可以根据expire系列命令进行超时设置,上述第一字符串中的value可以表示为上述过期时间。
[0046]
在步骤104中,利用expire系列命令对上述第一字符串进行超时设置之后,即完成对上述哈希类型中field的超时设置,可以理解为上述第一字符串的超时设置匹配对应上述哈希类型中field的超时设置
[0047]
在该实施方案中,首先获取数据库redis中的超时设置信息,应理解,该超时设置信息对应数据库redis中的哈希类型,并且超时设置信息中包括哈希类型对应的键key和过期时间,然后依据哈希类型的当前key判断超时设置针对的对象,在判断是对域field进行超时设置的情况下,依据当前key创建第一字符串string,最后以超时设置信息中的过期时间对第一字符串进行超时设置,即完成对哈希类型中的field进行设置。采用本发明实施例的技术方案,通过引入第一字符串来对哈希类型中的field进行超时设置,从而提高对哈希类型的超时管理效果。
[0048]
可选地,所述依据当前key确定所述哈希类型的超时设置类型,包括:
[0049]
获取当前key的首字符;
[0050]
在所述首字符满足第一预设条件的情况下,将所述超时设置类型设定为所述第一类型;
[0051]
在所述首字符不满足第一预设条件的情况下,将所述超时设置类型设定为所述第二类型;
[0052]
其中,所述第一预设条件表示所述首字符为第一字符类型,且以所述首字符作为分隔符,拆分当前key为两个非空字符串,所述第一字符类型表示非数字、非字母和非下划线的字符。
[0053]
在该实施方案中,首先获取当前key的首字符,并且判断首字符是否是非数字类型、非字母类型以及非下划线类型,在满足上述第一预设条件的情况下,则将上述超时设置类型设定为所述第一类型,即表示用户的目的在于对上述哈希类型中的field进行超时设置,通过该方法,能够确定超时设置的类型,明确用户的设置意图,降低在对数据进行超时管理时的操作失误,进而提高了对数据的超时设置效果。
[0054]
其中,上述第一预设条件表示上述首字符为第一字符类型,且以上述首字符作为分隔符,拆分当前key为两个非空字符串,上述第一字符类型表示非数字、非字母和非下划线的字符,两个非空字符串按照顺序可以当作为上述哈希类型的key和field。
[0055]
在一些可选的实施方式中,设置以下规则:
[0056]
1、当前key以非数字、非字母以及非下划线开始。
[0057]
2、以首字符作为分隔符,除去首字符之后剩余的部分可以被分为两个字符串,且都不能为空,那么这两个字符串分别被当做上述哈希类型的key和field。
[0058]
按照以上规则,假如收到的当前key为“@user@pwd”,插件会判定为是对上述哈希类型中field的超时设置,因为字符
‘
@’被当作分隔符,剩余的字符串“user@pwd”会被字符
‘
@’分割为user和pwd两个部分,并且判定user为上述哈希类型的key,判定pwd为上述哈希类型的field。
[0059]
同样地,“user@pwd”、“@user@”、“@user*pwd”等key会被判定为不符合以上规则,即会被当做普通的针对key的超时设置,而“*user*pwd”会被当做针对哈希类型中field的超时设置。通过以上规则可以合理地选择分隔符来处理key中带有特殊字符的情况。
[0060]
可选地,所述依据当前key创建第一字符串string,包括:
[0061]
将当前key的前缀设置为预设字符串,得到新键key;
[0062]
依据所述新键key创建所述第一字符串,其中,所述第一字符串中的value表示所述过期时间。
[0063]
在该实施方案中,在当前key的前缀位置添加预设字符串,得到新键key,然后依据新键key创建一个字符串类型的数据,即上述第一字符串,其中,上述第一字符串中的key即为上述新键key,上述第一字符串中的value即为上述过期时间,最后通过expire系类命令对上述第一字符串设置过期时间。通过该方法,将原本应该对上述哈希类型中field的超时设置,转化为对字符串类型的超时设置,从而提高了对哈希类型超时设置的效果。
[0064]
需要说明的是,当插件发现是对哈希类型中的field进行超时设置时,可以首先检测对应的hash field是否存在,若不存在则返回。
[0065]
上述预设前缀可以根据用户进行设定,例如:以当前键key为“@user@pwd”根据新键的拼接规则,最终创建一个名为“_hfexpire@user@pwd”的字符串string类型,其中,字符串类型中的value为具体的过期时间,同时为对应的key利用expire系列命令进行过期时间的设置。
[0066]
可选地,在所述依据当前key确定所述哈希类型的超时设置类型之后,所述方法还包括:
[0067]
将当前key以所述首字符作为分割符进行拆分,得到解析处理结果,所述解析处理结果包括第二字符串和第三字符串,其中,第二字符串表示所述哈希类型的key,所述第三字符串表示哈希类型的field;
[0068]
创建有序集合zset,其中,所述有序集合的key为所述预设字符串和所述第二字符串的拼接键;
[0069]
将所述第三字符串添加至所述有序集合。
[0070]
在该实施方案中,首先对当前key进行解析,得到上述第二字符串和上述第三字符串,然后创建一个有序集合zset,将上述第三字符串添加至上述有序集合中,通过该方法,在后续对其他哈希类型进行超时设置或是删除过期数据时,可以依据上述有序集合进行对应操作,从而提高对于哈希类型的超时设置效果。
[0071]
在一些实施例中,以当前键key为“@user@pwd”为例,根据上述第一预设条件,判定为对哈希类型中field进行超时设置,那么插件会将“pwd”添加至“_hfexpire_user”为key的有序结合中,并且,对应的有序集合无须提前进行创建,数据库redis在添加过程中,若发现没有该有序集合,则自动添加。
[0072]
可选地,在所述依据所述第一字符串对所述哈希类型中的field进行超时设置之后,所述方法还包括:
[0073]
在所述哈希类型的field失效的情况下,获取删除通知;
[0074]
依据所述删除通知进行第一删除处理和第二删除处理,其中,所述第一删除处理表示对所述哈希类型中的field进行删除,所述第二删除处理表示对所述有序集合中的所述第三字符串进行删除。
[0075]
在该实施方案中,因为数据库redis提供超时通知,那么在上述哈希类型的field失效的情况下,能够去获取上述删除通知,然后依据上述删除通知对上述哈希类型中的field进行删除,以及对上述有序集合中的上述第三字符串进行删除,通过该方法,利用数据库redis自身的键过期机制进行删除处理,无须开启单独的检测线程定时遍历检测,在上述方案中,需要进行上述第一删除处理和上述第二删除处理,由于数据库redis提供管道机制,从而减小对数据库redis性能的影响,进而提高了对哈希类型超时管理的效果。
[0076]
以收到键“_hfexpire@user@pwd”失效通知为例,根据拼接规则可以解析出哈希类型发生过期,其中,哈希类型的key为“user”,哈希类型的field为“pwd”,然后从对应“_hfexpire_user”的有序集合中删除“pwd”,同时也对哈希类型中对应的field进行删除。
[0077]
可选地,在所述依据所述第一字符串对所述哈希类型中的field进行超时设置之后,所述方法还包括:
[0078]
对包含所述哈希类型的目标方法进行拦截,并获取对应所述哈希类型的n个目标键key和n个目标域field,n为正整数;
[0079]
对所述目标键key和所述目标域field进行一对一拼接,得到n个目标新键key;
[0080]
依据所述n个目标新键key和所述有序集合对所述哈希类型中失效的field进行删除。
[0081]
在该实施方案中,首先对包含上述哈希类型的目标方法进行拦截,并获取对应上述哈希类型的n个目标键key和n个目标域field,然后按照拼接规则将n个目标键key和n个目标域field进行一对一的拼接,从而得到n个目标新键key,最后将n个目标新键key与上述有序集合进行比对,对上述哈希类型中失效的field进行删除,通过该方法,可以实时对超时设置的field进行过期检测,从而达到高效清理的效果。
[0082]
在另外一些可选的实施例中,插件对包含哈希类型的方法进行拦截,并对参数进行解析,其中,利用key和所有的field,按照拼接规则进行拼接,然后利用数据库redis中的mget命令,一次性获取所有未超时的key,然后与有序集合中的key进行对比,当有序集合中存在且mget命令中未返回的field即设定为已超时的field,最后数据库redis调用hdel命令对超时的field进行删除。
[0083]
需要说明的是,数据库redis采用惰性删除的方法对过期键进行清理,因此在上述实施例中,在调用mget命令之后,返回得到的是未过期的键,此时对于已经过期还未删除的键会触发前述删除过期键的逻辑,在这段时间内则需要通过有序集合来确定设置了过期时间的键,通过比对即可确认以已经过期却还未删除的键。
[0084]
可选地,所述依据所述n个目标新键key和所述有序集合对所述哈希类型中失效的field进行删除,包括:
[0085]
获取所述n个目标新键key中m个未超时的键key,m为大于或等于0,且小于或等于n的整数;
[0086]
依据所述m个未超时的键key对所述有序集合中失效的field进行删除。
[0087]
请参见图2,图2是本发明实施例提供的一种数据超时管理装置的结构示意图,如
图2所示,数据超时管理装置200,包括:
[0088]
第一获取模块201,用于获取数据库redis中的超时设置信息,所述超时设置信息包括哈希类型hash对应的键key和过期时间,所述哈希类型为key、域field和值value的三元组;
[0089]
确定模块202,用于依据所述哈希类型的当前key确定所述哈希类型的超时设置类型,所述超时设置类型包括第一类型和第二类型,其中,所述第一类型表示对field的超时设置,所述第二类型表示对当前key的超时设置;
[0090]
第一创建模块203,用于在所述超时设置类型为所述第一类型的情况下,依据当前key创建第一字符串string,其中,所述第一字符串的value对应所述过期时间;
[0091]
设置模块204,用于依据所述第一字符串对所述哈希类型中的field进行超时设置。
[0092]
可选地,确定模块202包括:
[0093]
第一获取单元,用于获取当前key的首字符;
[0094]
第一设定单元,用于在所述首字符满足第一预设条件的情况下,将所述超时设置类型设定为所述第一类型;
[0095]
第二设定单元,用于在所述首字符不满足第一预设条件的情况下,将所述超时设置类型设定为所述第二类型;
[0096]
其中,所述第一预设条件表示所述首字符为第一字符类型,且以所述首字符作为分隔符,拆分当前key为两个非空字符串,所述第一字符类型表示非数字、非字母和非下划线的字符。
[0097]
可选地,第一创建模块203包括:
[0098]
第三设定单元,用于将当前key的前缀设置为预设字符串,得到新键key;
[0099]
第一创建单元,用于依据所述新键key创建所述第一字符串,其中,所述第一字符串中的value表示所述过期时间。
[0100]
可选地,数据超时设置装置200还包括:
[0101]
拆分模块,用于将当前key以所述首字符作为分割符进行拆分,得到解析处理结果,所述解析处理结果包括第二字符串和第三字符串,其中,第二字符串表示所述哈希类型的key,所述第三字符串表示哈希类型的field;
[0102]
第二创建模块,用于创建有序集合zset,其中,所述有序集合的key为所述预设字符串和所述第二字符串的拼接键;
[0103]
添加模块,用于将所述第三字符串添加至所述有序集合。
[0104]
可选地,数据超时设置装置200还包括:
[0105]
第二获取模块,用于在所述哈希类型的field失效的情况下,获取删除通知;
[0106]
第一删除模块,用于依据所述删除通知进行第一删除处理和第二删除处理,其中,所述第一删除处理表示对所述哈希类型中的field进行删除,所述第二删除处理表示对所述有序集合中的所述第三字符串进行删除。
[0107]
可选地,数据超时设置装置200还包括:
[0108]
第三获取模块,用于对包含所述哈希类型的目标方法进行拦截,并获取对应所述哈希类型的n个目标键key和n个目标域field,n为正整数;
[0109]
拼接模块,用于对所述目标键key和所述目标域field进行一对一拼接,得到n个目标新键key;
[0110]
第二删除模块,用于依据所述n个目标新键key和所述有序集合对所述哈希类型中失效的field进行删除。
[0111]
可选地,第二删除模块包括:
[0112]
第二获取单元,用于获取所述n个目标新键key中m个未超时的键key,m为大于或等于0,且小于或等于n的整数;
[0113]
删除单元,用于依据所述m个未超时的键key对所述有序集合中失效的field进行删除。
[0114]
具体地,请参见图3,本发明实施例还提供了一种电子设备,包括总线301、收发机302、天线303、总线接口304、处理器305和存储器306。
[0115]
收发机302,用于获取数据库redis中的超时设置信息,所述超时设置信息包括哈希类型hash对应的键key和过期时间,所述哈希类型为key、域field和值value的三元组;
[0116]
处理器305,用于依据所述哈希类型的当前key确定所述哈希类型的超时设置类型,所述超时设置类型包括第一类型和第二类型,其中,所述第一类型表示对field的超时设置,所述第二类型表示对当前key的超时设置;
[0117]
处理器305,还用于在所述超时设置类型为所述第一类型的情况下,依据当前key创建第一字符串string,其中,所述第一字符串的value对应所述过期时间;
[0118]
处理器305,还用于依据所述第一字符串对所述哈希类型中的field进行超时设置。
[0119]
可选地,收发机302,还用于获取当前key的首字符;
[0120]
处理器305,还用于在所述首字符满足第一预设条件的情况下,将所述超时设置类型设定为所述第一类型;
[0121]
处理器305,还用于在所述首字符不满足第一预设条件的情况下,将所述超时设置类型设定为所述第二类型;
[0122]
其中,所述第一预设条件表示所述首字符为第一字符类型,且以所述首字符作为分隔符,拆分当前key为两个非空字符串,所述第一字符类型表示非数字、非字母和非下划线的字符。
[0123]
可选地,处理器305,还用于将当前key的前缀设置为预设字符串,得到新键key;
[0124]
处理器305,还用于依据所述新键key创建所述第一字符串,其中,所述第一字符串中的value表示所述过期时间。
[0125]
可选地,处理器305,还用于将当前key以所述首字符作为分割符进行拆分,得到解析处理结果,所述解析处理结果包括第二字符串和第三字符串,其中,第二字符串表示所述哈希类型的key,所述第三字符串表示哈希类型的field;
[0126]
处理器305,还用于创建有序集合zset,其中,所述有序集合的key为所述预设字符串和所述第二字符串的拼接键;
[0127]
处理器305,还用于将所述第三字符串添加至所述有序集合。
[0128]
可选地,收发机302,还用于在所述哈希类型的field失效的情况下,获取删除通知;
[0129]
处理器305,还用于依据所述删除通知进行第一删除处理和第二删除处理,其中,所述第一删除处理表示对所述哈希类型中的field进行删除,所述第二删除处理表示对所述有序集合中的所述第三字符串进行删除。
[0130]
可选地,收发机302,还用于对包含所述哈希类型的目标方法进行拦截,并获取对应所述哈希类型的n个目标键key和n个目标域field,n为正整数;
[0131]
处理器305,还用于对所述目标键key和所述目标域field进行一对一拼接,得到n个目标新键key;
[0132]
处理器305,还用于依据所述n个目标新键key和所述有序集合对所述哈希类型中失效的field进行删除。
[0133]
可选地,收发机302,还用于获取所述n个目标新键key中m个未超时的键key,m为大于或等于0,且小于或等于n的整数;
[0134]
处理器305,还用于依据所述m个未超时的键key对所述有序集合中失效的field进行删除。
[0135]
在图3中,总线架构(用总线301来代表),总线301可以包括任意数量的互联的总线和桥,总线301将包括由处理器305代表的一个或多个处理器和存储器306代表的存储器的各种电路链接在一起。总线301还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口304在总线301和收发机302之间提供接口。收发机302可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器305处理的数据通过天线303在无线介质上进行传输,进一步,天线303还接收数据并将数据传送给处理器305。
[0136]
处理器305负责管理总线301和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器306可以被用于存储处理器305在执行操作时所使用的数据。
[0137]
可选地,处理器305可以是中央处理器(central processing unit,cpu)、专用集成电路(application specific integrated circuit,asic)、现场可编程逻辑门阵列(field programmable gate array,fpga)或复杂可编程逻辑器件(complex programmable logic device,cpld)。
[0138]
本发明实施例还提供了一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现上述数据超时管理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0139]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本发明实施方式中的方法和装置的范围不限于按所讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的
特征可在其他示例中被组合。
[0140]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
[0141]
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
技术特征:
1.一种数据超时管理方法,其特征在于,包括:获取数据库redis中的超时设置信息,所述超时设置信息包括哈希类型hash对应的键key和过期时间,所述哈希类型为key、域field和值value的三元组;依据所述哈希类型的当前key确定所述哈希类型的超时设置类型,所述超时设置类型包括第一类型和第二类型,其中,所述第一类型表示对field的超时设置,所述第二类型表示对当前key的超时设置;在所述超时设置类型为所述第一类型的情况下,依据当前key创建第一字符串string,其中,所述第一字符串的value对应所述过期时间;依据所述第一字符串对所述哈希类型中的field进行超时设置。2.根据权利要求1所述的数据超时管理方法,其特征在于,所述依据当前key确定所述哈希类型的超时设置类型,包括:获取当前key的首字符;在所述首字符满足第一预设条件的情况下,将所述超时设置类型设定为所述第一类型;在所述首字符不满足第一预设条件的情况下,将所述超时设置类型设定为所述第二类型;其中,所述第一预设条件表示所述首字符为第一字符类型,且以所述首字符作为分隔符,拆分当前key为两个非空字符串,所述第一字符类型表示非数字、非字母和非下划线的字符。3.根据权利要求2所述的数据超时管理方法,其特征在于,所述依据当前key创建第一字符串string,包括:将当前key的前缀设置为预设字符串,得到新键key;依据所述新键key创建所述第一字符串,其中,所述第一字符串中的value表示所述过期时间。4.根据权利要求3所述的数据超时管理方法,其特征在于,在所述依据当前key确定所述哈希类型的超时设置类型之后,所述方法还包括:将当前key以所述首字符作为分割符进行拆分,得到解析处理结果,所述解析处理结果包括第二字符串和第三字符串,其中,第二字符串表示所述哈希类型的key,所述第三字符串表示哈希类型的field;创建有序集合zset,其中,所述有序集合的key为所述预设字符串和所述第二字符串的拼接键;将所述第三字符串添加至所述有序集合。5.根据权利要求4所述的数据超时管理方法,其特征在于,在所述依据所述第一字符串对所述哈希类型中的field进行超时设置之后,所述方法还包括:在所述哈希类型的field失效的情况下,获取删除通知;依据所述删除通知进行第一删除处理和第二删除处理,其中,所述第一删除处理表示对所述哈希类型中的field进行删除,所述第二删除处理表示对所述有序集合中的所述第三字符串进行删除。6.根据权利要求4所述的数据超时管理方法,其特征在于,在所述依据所述第一字符串
对所述哈希类型中的field进行超时设置之后,所述方法还包括:对包含所述哈希类型的目标方法进行拦截,并获取对应所述哈希类型的n个目标键key和n个目标域field,n为正整数;对所述目标键key和所述目标域field进行一对一拼接,得到n个目标新键key;依据所述n个目标新键key和所述有序集合对所述哈希类型中失效的field进行删除。7.根据权利要求6所述的数据超时管理方法,其特征在于,所述依据所述n个目标新键key和所述有序集合对所述哈希类型中失效的field进行删除,包括:获取所述n个目标新键key中m个未超时的键key,m为大于或等于0,且小于或等于n的整数;依据所述m个未超时的键key对所述有序集合中失效的field进行删除。8.一种数据超时管理装置,其特征在于,包括:第一获取模块,用于获取数据库redis中的超时设置信息,所述超时设置信息包括哈希类型hash对应的键key和过期时间,所述哈希类型为key、域field和值value的三元组;确定模块,用于依据所述哈希类型的当前key确定所述哈希类型的超时设置类型,所述超时设置类型包括第一类型和第二类型,其中,所述第一类型表示对field的超时设置,所述第二类型表示对当前key的超时设置;第一创建模块,用于在所述超时设置类型为所述第一类型的情况下,依据当前key创建第一字符串string,其中,所述第一字符串的value对应所述过期时间;设置模块,用于依据所述第一字符串对所述哈希类型中的field进行超时设置。9.一种电子设备,其特征在于,包括收发机和处理器,所述收发机,用于获取数据库redis中的超时设置信息,所述超时设置信息包括哈希类型hash对应的键key和过期时间,所述哈希类型为key、域field和值value的三元组;所述处理器,用于依据所述哈希类型的当前key确定所述哈希类型的超时设置类型,所述超时设置类型包括第一类型和第二类型,其中,所述第一类型表示对field的超时设置,所述第二类型表示对当前key的超时设置;所述处理器,还用于在所述超时设置类型为所述第一类型的情况下,依据当前key创建第一字符串string,其中,所述第一字符串的value对应所述过期时间;所述处理器,还用于依据所述第一字符串对所述哈希类型中的field进行超时设置。10.一种电子设备,其特征在于,包括:收发机、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序;其特征在于,所述处理器,用于读取存储器中的程序实现如权利要求1至7中任一项所述的数据超时管理方法中的步骤。11.一种可读存储介质,用于存储程序,其特征在于,所述程序被处理器执行时实现如权利要求1至7中任一项所述的数据超时管理方法中的步骤。
技术总结
本发明提供一种数据超时管理方法、装置、电子设备及可读存储介质,涉及计算机技术领域,该方法包括:获取数据库Redis中的超时设置信息,所述超时设置信息包括哈希类型Hash对应的键key和过期时间,所述哈希类型为key、域field和值value的三元组;依据所述哈希类型的当前key确定所述哈希类型的超时设置类型,所述超时设置类型包括第一类型和第二类型;在所述超时设置类型为所述第一类型的情况下,依据当前key创建第一字符串string,其中,所述第一字符串的value对应所述过期时间;依据所述第一字符串对所述哈希类型中的field进行超时设置。本发明通过对哈希类型中的field进行超时设置,从而提高了对哈希类型超时管理的效果。从而提高了对哈希类型超时管理的效果。从而提高了对哈希类型超时管理的效果。
技术研发人员:吴松伟 刘源 张海涛 黄梦雅
受保护的技术使用者:中国移动通信集团有限公司
技术研发日:2022.12.19
技术公布日:2023/10/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:减震器和移动工具的制作方法 下一篇:一种可调节型且方便检修的呼吸面罩