分级缓存制造技术

技术编号:39644940 阅读:9 留言:0更新日期:2023-12-09 11:12
本公开提供了一种分级缓存方法,可以应用于分布式技术领域

【技术实现步骤摘要】
分级缓存、数据查询方法、装置、设备、介质和程序产品


[0001]本公开涉及分布式


金融科技领域或其他相关领域,具体地涉及一种分级缓存

数据查询方法

装置

设备

介质和程序产品


技术介绍

[0002]随着服务的不断拓展和创新,在线使用场景的业务量逐步增大,不仅系统服务的复杂度增大,业务数据在系统服务中也在不断累积,许多业务涉及到多表查询,数据量大并且计算复杂,以至于查询业务数据效率缓慢,影响客户体验

再者,服务调用量的增加,频繁查询数据库导致系统性能下降,服务端响应时间增长,影响其他正常用户的访问

因此需要提供一种缓存优化方法,既能从缓存中获取结果数据减少服务耗时,满足用户体验,又能减少数据库访问次数提高系统性能


技术实现思路

[0003]鉴于上述问题,本公开提供了提高查询效率和缓存可维护性的分级缓存方法

装置

设备

介质和程序产品

[0004]根据本公开的第一个方面,提供了一种分级缓存方法,包括:接收业务数据和缓存方法信息;基于所述缓存方法信息,分别计算主键和参数键;以及将所述业务数据

所述主键和所述参数键,存入预设数据结构形式的缓存空间中,所述预设数据结构包括
N
个层级的键值对,所述键值对包括
Key/>和
Value

N
为大于1的正整数,其中,当所述主键作为
Key
时,所述主键所处层级的键值对中的
Value
用于存储下一层级的键值对的主键,或者所述主键所处层级的键值对中的
Value
用于存储参数键,其中,当所述参数键作为
Key
时,所述参数键所处层级的键值对中的
Value
用于存储所述业务数据

[0005]根据本公开的实施例,其中,所述缓存空间包括清理时间字段,所述方法还包括:接收清理时间;基于所述清理时间配置所述清理时间字段;以及在所述清理时间字段到期的情况下,删除所述缓存空间

[0006]根据本公开的实施例,其中,所述缓存方法信息至少包括方法名以及缓存级别,所述缓存级别包括方法级和用户级,所述主键和所述参数键形成的键值对采用
Hash
结构,所述参数键和所述业务数据形成的键值对采用
String
结构,所述基于所述缓存方法信息,分别计算主键和参数键,包括:对于所述主键,当所述缓存级别为方法级时,基于所述方法级和所述方法名形成所述主键;对于所述主键,当所述缓存级别为用户级时,基于所述用户级和所述方法名计算所述主键;对于所述参数键,当所述缓存级别为方法级时,基于预设哈希值

所述方法级和所述方法名形成所述参数键;以及对于所述参数键,当所述缓存级别为用户级时,基于预设哈希值

所述用户级和所述方法名形成所述参数键

[0007]根据本公开的实施例,其中,所述将所述业务数据

所述主键和所述参数键,存入预设数据结构形式的缓存空间中,包括:判断所述主键是否存在对应的所述缓存空间;在所述主键存在对应的所述缓存空间的情况下,判断所述缓存空间中是否存在对应的所述参数
键;以及在所述缓存空间中不存在对应的所述参数键的情况下,将所述参数键和所述业务数据存入所述缓存空间

[0008]根据本公开的实施例,其中,在所述判断所述主键是否存在对应的所述缓存空间后,还包括:在所述主键不存在对应的所述缓存空间的情况下,基于所述业务数据

所述主键和所述参数键,按照所述预设数据结构,建立缓存空间

[0009]根据本公开的实施例,其中,在所述接收业务数据和缓存方法信息后,所述方法还包括:接收针对所述业务数据的动态变量,所述动态变量包括开启缓存和关闭缓存;以及在所述动态变量为关闭缓存的情况下,将所述业务数据发送至主业务逻辑执行

[0010]根据本公开的实施例,其中,所述分级缓存方法是基于切面编译实现的

[0011]根据本公开的第二个方面,提供了一种数据查询方法,包括:接收查询请求,所述查询请求包括参数键;以及基于所述参数键,直接查询缓存空间中的业务数据,其中,所述缓存空间是执行根据第一方面中任一项所述的方法得到的

[0012]根据本公开的实施例,其中,在所述基于所述参数键,直接查询缓存空间中的业务数据后,还包括:响应于自生成的删除指令,删除所述缓存空间中的所述参数键和所述业务数据

[0013]本公开的第三个方面提供了一种分级缓存装置,包括:数据接收模块,用于接收业务数据和缓存方法信息;键值计算模块,用于基于所述缓存方法信息,分别计算主键和参数键;以及缓存空间存放模块,用于将所述业务数据

所述主键和所述参数键,存入预设数据结构形式的缓存空间中,所述预设数据结构包括
N
个层级的键值对,所述键值对包括
Key

Value

N
为大于1的正整数,其中,当所述主键作为
Key
时,所述主键所处层级的键值对中的
Value
用于存储下一层级的键值对的主键,或者所述主键所处层级的键值对中的
Value
用于存储参数键,其中,当所述参数键作为
Key
时,所述参数键所处层级的键值对中的
Value
用于存储所述业务数据

[0014]根据本公开的实施例,其中,所述缓存空间包括清理时间字段,所述装置还包括清理时间接收模块

清理时间配置模块以及缓存空间删除模块,所述清理时间接收模块,用于接收清理时间;所述清理时间配置模块,用于基于所述清理时间配置所述清理时间字段;以及所述缓存空间删除模块,用于在所述清理时间字段到期的情况下,删除所述缓存空间

[0015]根据本公开的实施例,其中,所述缓存方法信息至少包括方法名以及缓存级别,所述缓存级别包括方法级和用户级,所述主键和所述参数键形成的键值对采用
Hash
结构,所述参数键和所述业务数据形成的键值对采用
String
结构,所述键值计算模块包括第一计算单元

第二计算单元

第三计算单元以及第四计算单元,所述第一计算单元,用于对于所述主键,当所述缓存级别为方法级时,基于所述方法级和所述方法名形成所述主键;所述第二计算单元,用于对于所述主键,当所述缓存级别为用户级时,基于所述用户级和所述方法名计算所述主键;所述第三计算单元,用于对于所述参数本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.
一种分级缓存方法,包括:接收业务数据和缓存方法信息;基于所述缓存方法信息,分别计算主键和参数键;以及将所述业务数据

所述主键和所述参数键,存入预设数据结构形式的缓存空间中,所述预设数据结构包括
N
个层级的键值对,所述键值对包括
Key

Value

N
为大于1的正整数,其中,当所述主键作为
Key
时,所述主键所处层级的键值对中的
Value
用于存储下一层级的键值对的主键,或者所述主键所处层级的键值对中的
Value
用于存储参数键,其中,当所述参数键作为
Key
时,所述参数键所处层级的键值对中的
Value
用于存储所述业务数据
。2.
根据权利要求1所述的方法,其中,所述缓存空间包括清理时间字段,所述方法还包括:接收清理时间;基于所述清理时间配置所述清理时间字段;以及在所述清理时间字段到期的情况下,删除所述缓存空间
。3.
根据权利要求1或2所述的方法,其中,所述缓存方法信息至少包括方法名以及缓存级别,所述缓存级别包括方法级和用户级,所述主键和所述参数键形成的键值对采用
Hash
结构,所述参数键和所述业务数据形成的键值对采用
String
结构,所述基于所述缓存方法信息,分别计算主键和参数键,包括:对于所述主键,当所述缓存级别为方法级时,基于所述方法级和所述方法名形成所述主键;对于所述主键,当所述缓存级别为用户级时,基于所述用户级和所述方法名计算所述主键;对于所述参数键,当所述缓存级别为方法级时,基于预设哈希值

所述方法级和所述方法名形成所述参数键;以及对于所述参数键,当所述缓存级别为用户级时,基于预设哈希值

所述用户级和所述方法名形成所述参数键
。4.
根据权利要求3所述的方法,其中,所述将所述业务数据

所述主键和所述参数键,存入预设数据结构形式的缓存空间中,包括:判断所述主键是否存在对应的所述缓存空间;在所述主键存在对应的所述缓存空间的情况下,判断所述缓存空间中是否存在对应的所述参数键;以及在所述缓存空间中不存在对应的所述参数键的情况下,将所述参数键和所述业务数据存入所述缓存空间
。5.
根据权利要求4所述的方法,其中,在所述判断所述主键是否存在对应的所述缓存空间后,还包括:在所述主键不存在对应的所述缓存空间的情况下,基于所述业务数据

所述主键和所述参数键,按照所述预设数据结构,建立缓存空间
。6.

【专利技术属性】
技术研发人员:郑佳敏严祖洋汪世骏甘文翠
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:

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

1