CN117149832A - 分级缓存、数据查询方法、装置、设备、介质和程序产品 - Google Patents
分级缓存、数据查询方法、装置、设备、介质和程序产品 Download PDFInfo
- Publication number
- CN117149832A CN117149832A CN202311125421.2A CN202311125421A CN117149832A CN 117149832 A CN117149832 A CN 117149832A CN 202311125421 A CN202311125421 A CN 202311125421A CN 117149832 A CN117149832 A CN 117149832A
- Authority
- CN
- China
- Prior art keywords
- key
- level
- parameter
- cache
- service data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 227
- 238000004140 cleaning Methods 0.000 claims description 35
- 238000004590 computer program Methods 0.000 claims description 20
- 238000004364 calculation method Methods 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 abstract description 6
- 238000012937 correction Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 18
- 230000015654 memory Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000012217 deletion Methods 0.000 description 5
- 230000037430 deletion Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000000547 structure data Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种分级缓存方法,可以应用于分布式技术领域、金融科技领域或其他相关领域。该分级缓存方法,包括:接收业务数据和缓存方法信息;基于缓存方法信息,分别计算主键和参数键;以及基于业务数据、主键和参数键,存入预设数据结构形式的缓存空间中,预设数据结构包括N个层级的键值对,键值对包括Key和Value,N为大于1的正整数,其中,当主键作为Key时,主键所处层级的键值对中的Value用于存储下一层级的键值对的主键,或者主键所处层级的键值对中的Value用于存储参数键,其中,当参数键作为Key时,参数键所处层级的键值对中的Value用于存储业务数据。本公开还提供了一种分级缓存装置、设备、存储介质和程序产品。
Description
技术领域
本公开涉及分布式技术领域、金融科技领域或其他相关领域,具体地涉及一种分级缓存、数据查询方法、装置、设备、介质和程序产品。
背景技术
随着服务的不断拓展和创新,在线使用场景的业务量逐步增大,不仅系统服务的复杂度增大,业务数据在系统服务中也在不断累积,许多业务涉及到多表查询,数据量大并且计算复杂,以至于查询业务数据效率缓慢,影响客户体验。再者,服务调用量的增加,频繁查询数据库导致系统性能下降,服务端响应时间增长,影响其他正常用户的访问。因此需要提供一种缓存优化方法,既能从缓存中获取结果数据减少服务耗时,满足用户体验,又能减少数据库访问次数提高系统性能。
发明内容
鉴于上述问题,本公开提供了提高查询效率和缓存可维护性的分级缓存方法、装置、设备、介质和程序产品。
根据本公开的第一个方面,提供了一种分级缓存方法,包括:接收业务数据和缓存方法信息;基于所述缓存方法信息,分别计算主键和参数键;以及将所述业务数据、所述主键和所述参数键,存入预设数据结构形式的缓存空间中,所述预设数据结构包括N个层级的键值对,所述键值对包括Key和Value,N为大于1的正整数,其中,当所述主键作为Key时,所述主键所处层级的键值对中的Value用于存储下一层级的键值对的主键,或者所述主键所处层级的键值对中的Value用于存储参数键,其中,当所述参数键作为Key时,所述参数键所处层级的键值对中的Value用于存储所述业务数据。
根据本公开的实施例,其中,所述缓存空间包括清理时间字段,所述方法还包括:接收清理时间;基于所述清理时间配置所述清理时间字段;以及在所述清理时间字段到期的情况下,删除所述缓存空间。
根据本公开的实施例,其中,所述缓存方法信息至少包括方法名以及缓存级别,所述缓存级别包括方法级和用户级,所述主键和所述参数键形成的键值对采用Hash结构,所述参数键和所述业务数据形成的键值对采用String结构,所述基于所述缓存方法信息,分别计算主键和参数键,包括:对于所述主键,当所述缓存级别为方法级时,基于所述方法级和所述方法名形成所述主键;对于所述主键,当所述缓存级别为用户级时,基于所述用户级和所述方法名计算所述主键;对于所述参数键,当所述缓存级别为方法级时,基于预设哈希值、所述方法级和所述方法名形成所述参数键;以及对于所述参数键,当所述缓存级别为用户级时,基于预设哈希值、所述用户级和所述方法名形成所述参数键。
根据本公开的实施例,其中,所述将所述业务数据、所述主键和所述参数键,存入预设数据结构形式的缓存空间中,包括:判断所述主键是否存在对应的所述缓存空间;在所述主键存在对应的所述缓存空间的情况下,判断所述缓存空间中是否存在对应的所述参数键;以及在所述缓存空间中不存在对应的所述参数键的情况下,将所述参数键和所述业务数据存入所述缓存空间。
根据本公开的实施例,其中,在所述判断所述主键是否存在对应的所述缓存空间后,还包括:在所述主键不存在对应的所述缓存空间的情况下,基于所述业务数据、所述主键和所述参数键,按照所述预设数据结构,建立缓存空间。
根据本公开的实施例,其中,在所述接收业务数据和缓存方法信息后,所述方法还包括:接收针对所述业务数据的动态变量,所述动态变量包括开启缓存和关闭缓存;以及在所述动态变量为关闭缓存的情况下,将所述业务数据发送至主业务逻辑执行。
根据本公开的实施例,其中,所述分级缓存方法是基于切面编译实现的。
根据本公开的第二个方面,提供了一种数据查询方法,包括:接收查询请求,所述查询请求包括参数键;以及基于所述参数键,直接查询缓存空间中的业务数据,其中,所述缓存空间是执行根据第一方面中任一项所述的方法得到的。
根据本公开的实施例,其中,在所述基于所述参数键,直接查询缓存空间中的业务数据后,还包括:响应于自生成的删除指令,删除所述缓存空间中的所述参数键和所述业务数据。
本公开的第三个方面提供了一种分级缓存装置,包括:数据接收模块,用于接收业务数据和缓存方法信息;键值计算模块,用于基于所述缓存方法信息,分别计算主键和参数键;以及缓存空间存放模块,用于将所述业务数据、所述主键和所述参数键,存入预设数据结构形式的缓存空间中,所述预设数据结构包括N个层级的键值对,所述键值对包括Key和Value,N为大于1的正整数,其中,当所述主键作为Key时,所述主键所处层级的键值对中的Value用于存储下一层级的键值对的主键,或者所述主键所处层级的键值对中的Value用于存储参数键,其中,当所述参数键作为Key时,所述参数键所处层级的键值对中的Value用于存储所述业务数据。
根据本公开的实施例,其中,所述缓存空间包括清理时间字段,所述装置还包括清理时间接收模块、清理时间配置模块以及缓存空间删除模块,所述清理时间接收模块,用于接收清理时间;所述清理时间配置模块,用于基于所述清理时间配置所述清理时间字段;以及所述缓存空间删除模块,用于在所述清理时间字段到期的情况下,删除所述缓存空间。
根据本公开的实施例,其中,所述缓存方法信息至少包括方法名以及缓存级别,所述缓存级别包括方法级和用户级,所述主键和所述参数键形成的键值对采用Hash结构,所述参数键和所述业务数据形成的键值对采用String结构,所述键值计算模块包括第一计算单元、第二计算单元、第三计算单元以及第四计算单元,所述第一计算单元,用于对于所述主键,当所述缓存级别为方法级时,基于所述方法级和所述方法名形成所述主键;所述第二计算单元,用于对于所述主键,当所述缓存级别为用户级时,基于所述用户级和所述方法名计算所述主键;所述第三计算单元,用于对于所述参数键,当所述缓存级别为方法级时,基于预设哈希值、所述方法级和所述方法名形成所述参数键;以及所述第四计算单元,用于对于所述参数键,当所述缓存级别为用户级时,基于预设哈希值、所述用户级和所述方法名形成所述参数键。
根据本公开的实施例,其中,所述缓存空间存放模块包括第一判断单元、第二判断单元以及业务数据存入单元,所述第一判断单元,用于判断所述主键是否存在对应的所述缓存空间;所述第二判断单元,用于在所述主键存在对应的所述缓存空间的情况下,判断所述缓存空间中是否存在对应的所述参数键;以及所述业务数据存入单元,用于在所述缓存空间中不存在对应的所述参数键的情况下,将所述参数键和所述业务数据存入所述缓存空间。
根据本公开的实施例,其中,所述缓存空间存放模块还包括缓存空间创建单元,所述缓存空间创建单元,用于在所述主键不存在对应的所述缓存空间的情况下,基于所述业务数据、所述主键和所述参数键,按照所述预设数据结构,建立缓存空间。
根据本公开的实施例,其中,所述装置还包括动态变量接收模块以及业务数据删除模块,所述动态变量接收模块,用于接收针对所述业务数据的动态变量,所述动态变量包括开启缓存和关闭缓存;以及所述业务数据删除模块,用于在所述动态变量为关闭缓存的情况下,将所述业务数据发送至主业务逻辑执行。
根据本公开的实施例,其中,所述分级缓存方法是基于切面编译实现的。
本公开的第四个方面提供了一种数据查询装置,包括:请求接收模块,用于接收查询请求,所述查询请求包括参数键;以及数据查询模块,用于基于所述参数键,直接查询缓存空间中的业务数据,其中,所述缓存空间是执行根据上述第一个方面中任一项所述的方法得到的。
根据本公开的实施例,其中,所述装置还包括业务数据删除模块,所述业务数据删除模块,用于响应于自生成的删除指令,删除所述缓存空间中的所述参数键和所述业务数据。
本公开的第五个方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述分级缓存、数据查询方法。
本公开的第六个方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述分级缓存、数据查询方法。
本公开的第七个方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述分级缓存、数据查询方法。
在本公开的实施例中,为了缓解数据库的服务压力和查询效率偏低的技术问题。获取结果或者将业务方法结果数据存入缓存,既能减少服务耗时,满足用户体验,又能减少数据库访问次数提高系统性能。并且,采用预设数据结构实现数据的缓存空间,有利于在缓存的业务数据出现错误时实施纠错,便于纠错查询,提高纠错效率。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的分级缓存、数据查询方法的应用场景图;
图2示意性示出了根据本公开实施例的分级缓存方法的流程图;
图3示意性示出了根据本公开实施例的缓存空间清理方法的流程图;
图4示意性示出了根据本公开实施例的键值计算方法的流程图;
图5示意性示出了根据本公开实施例的业务数据存入方法的流程图;
图6示意性示出了根据本公开实施例的另一种业务数据存入方法的流程图;
图7示意性示出了根据本公开实施例的另一种分级缓存方法的流程图;
图8示意性示出了根据本公开实施例的数据查询方法的流程图;
图9示意性示出了根据本公开实施例的另一种数据查询方法的流程图;
图10示意性示出了根据本公开实施例的两种数据结构的示意框图;
图11示意性示出了根据本公开实施例的方法级缓存的数据结构的示意框图;
图12示意性示出了根据本公开实施例的用户级缓存的数据结构的示意框图;
图13示意性示出了根据本公开实施例的分级缓存装置的结构框图;
图14示意性示出了根据本公开实施例的数据查询装置的结构框图;以及
图15示意性示出了根据本公开实施例的适于实现分级缓存、数据查询方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
在对本公开进行详细揭示之前,对本公开的实施例所涉及的关键技术术语进行一一说明,如下所示:
分布式缓存:分布式环境下使用的一种缓存技术,可以将数据分散存储在不同的缓存节点,实现分布式数据缓存的加速数据访问,Redis是其中的一种。
分级缓存:将数据按照不同的缓存等级进行缓存,例如,在本公开的实施例中把缓存方法按方法级、用户级进行分类。
为了解决现有技术中存在的技术问题,本公开的实施例提供了一种分级缓存方法,包括:接收业务数据和缓存方法信息;基于所述缓存方法信息,分别计算主键和参数键;以及将所述业务数据、所述主键和所述参数键,存入预设数据结构形式的缓存空间中,所述预设数据结构包括N个层级的键值对,所述键值对包括Key和Value,N为大于1的正整数,其中,当所述主键作为Key时,所述主键所处层级的键值对中的Value用于存储下一层级的键值对的主键,或者所述主键所处层级的键值对中的Value用于存储参数键,其中,当所述参数键作为Key时,所述参数键所处层级的键值对中的Value用于存储所述业务数据。
在本公开的实施例中,为了缓解数据库的服务压力和查询效率偏低的技术问题。获取结果或者将业务方法结果数据存入缓存,既能减少服务耗时,满足用户体验,又能减少数据库访问次数提高系统性能。并且,采用预设数据结构实现数据的缓存空间,有利于在缓存的业务数据出现错误时实施纠错,便于纠错查询,提高纠错效率。
图1示意性示出了根据本公开实施例的分级缓存、数据查询方法的应用场景图。
如图1所示,根据该实施例的应用场景100可以包括终端设备101、102、103、网络104以及服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的分级缓存、数据查询方法一般可以由服务器105执行。相应地,本公开实施例所提供的分级缓存、数据查询装置一般可以设置于服务器105中。本公开实施例所提供的分级缓存、数据查询方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的分级缓存、数据查询装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
以下将基于图1描述的场景,通过图2~图12对公开实施例的分级缓存、数据查询方法进行详细描述。
图2示意性示出了根据本公开实施例的分级缓存方法的流程图。
如图2所示,该实施例的分级缓存方法包括操作S210~操作S230,该方法可以服务器105执行。
在操作S210中,接收业务数据和缓存方法信息。
具体地,业务数据是用户查询数据库得到的实际需要的数据,例如,该业务数据可以是理财产品的收益率,在一个高并发的场景下,用户查询数据库的收益率需要进行分级缓存后,再从缓存中取出,最终返回用户。其中,缓存方法信息可以根据注解入参的缓存方法枚举类定义,枚举类是一种数据类型,定义一个有限的一组命名常量。缓存方法枚举类用来确定一个缓存方法的方法名、方法描述、缓存级别是方法级还是用户级。
在操作S220中,基于所述缓存方法信息,分别计算主键和参数键。
图4示意性示出了根据本公开实施例的键值计算方法的流程图。
如图4所示,该实施例的键值计算方法包括操作S410~操作S440,该操作S410~操作S440至少可以部分执行上述操作S220。
根据本公开的实施例,其中,所述缓存方法信息至少包括方法名以及缓存级别,所述缓存级别包括方法级和用户级,所述主键和所述参数键形成的键值对采用Hash结构,所述参数键和所述业务数据形成的键值对采用String结构。
在操作S410中,对于所述主键,当所述缓存级别为方法级时,基于所述方法级和所述方法名形成所述主键。
在操作S420中,对于所述主键,当所述缓存级别为用户级时,基于所述用户级和所述方法名计算所述主键。
在操作S430中,对于所述参数键,当所述缓存级别为方法级时,基于预设哈希值、所述方法级和所述方法名形成所述参数键。
其中,该预设哈希值是基于所述缓存方法信息计算得到的。
在操作S440中,对于所述参数键,当所述缓存级别为用户级时,基于预设哈希值、所述用户级和所述方法名形成所述参数键。
具体地,由于是采用分级缓存的缓存策略,因此,针对用户级缓存和方法级缓存采用不同的缓存逻辑,该缓存逻辑具体体现在缓存的数据结构和缓存的取数。其中,缓存的数据结构如下所示:
图10示意性示出了根据本公开实施例的两种数据结构的示意框图。
具体地,如图10所示,其中,String结构是Key-Value之间一对一的关系,Hash结构是Key-Value之间都一对多的关系。Hash结构对应的Key用来识别缓存方法,称为主键(或称主Key),String结构对应的Key用来识别方法和参数,称为参数键(或称参数Key),在参数键为Hash结构中的Value时,参数键也称为Hkey。其中,针对主Key的计算规则是:根据注解入参的缓存方法枚举类计算,其中,方法级缓存方法的主key=″method:″+方法名;用户级缓存方法的主key=″user:″+方法名。参数Key的规则是:根据被切入方法的所有入参计算序列化后的Hash值,方法级缓存方法的参数key=″method:″+方法名+″:″+hash值,用户级缓存方法的参数key=″user:″+方法名+″:″+用户id+″:″+hash值。
在操作S230中,将所述业务数据、所述主键和所述参数键,存入预设数据结构形式的缓存空间中,所述预设数据结构包括N个层级的键值对,所述键值对包括Key和Value,N为大于1的正整数,其中,当所述主键作为Key时,所述主键所处层级的键值对中的Value用于存储下一层级的键值对的主键,或者所述主键所处层级的键值对中的Value用于存储参数键,其中,当所述参数键作为Key时,所述参数键所处层级的键值对中的Value用于存储所述业务数据。
具体地,预设数据结构形式是由多个不同层级的键值对形成的,即预设数据结构形式是由多个不同层级的Key-Value形成的,其中,层级是按照业务逻辑完成分类的,可以分为N层。
当N等于2时,第一层的Key-Value结构即是“主键-参数键”,第二层的Key-value结构即是“参数键-业务数据”。当N大于2时,除了至少包括上述“主键-参数键”和“参数键-业务数据”的Key-Value结构,还包括“主键(K)-主键(K+1)”的分类等,类似于目录,可以通过不同一级目录下设置二级目录等等,直至最下层的目录下记载着相应内容,即“主键(K)-主键(K+1)-......-参数键-业务数据”。
在一个典型的场景下,预设数据结构中存在层数为2的情况下,主键和参数键结合所形成的缓存空间如下所示:
图11示意性示出了根据本公开实施例的方法级缓存的数据结构的示意框图。
图12示意性示出了根据本公开实施例的用户级缓存的数据结构的示意框图。
结合图11和图12所示,第一层的Key-Value是主Key1与多个参数Key的一对多的Hash结构数据,第二层的Key-Value是参数Key与业务数据一对一的String结构数据。其中,图11和图12相比,图11中缓存级别为的方法级的情况下,参数Key不指向对应的用户ID,仅指向业务数据而图12中缓存级别为用户级的情况下,参数Key除了指向业务数据外,还指向用户ID。
在本公开的实施例中,为了缓解数据库的服务压力和查询效率偏低的技术问题。获取结果或者将业务方法结果数据存入缓存,既能减少服务耗时,满足用户体验,又能减少数据库访问次数提高系统性能。并且,采用预设数据结构实现数据的缓存空间,有利于在缓存的业务数据出现错误时实施纠错,便于纠错查询,提高纠错效率。
根据本公开的实施例,其中,所述分级缓存方法是基于切面编译实现的。需要说明的是,通过切面注解实现了代码松耦合,解决了应用系统代码的冗余和重复编写,并且对原业务代码无侵入。
图3示意性示出了根据本公开实施例的缓存空间清理方法的流程图。
如图3所示,该实施例的缓存空间清理方法包括操作S310~操作S330。
根据本公开的实施例,其中,所述缓存空间包括清理时间字段。
结合图11和图12所示,缓存空间中存在“cleartime”字段,该字段则是缓存空间过期的时间。
在操作S310中,接收清理时间。
其中,该清理时间由开发人员自行定义,在此不再赘述。
在操作S320中,基于所述清理时间配置所述清理时间字段。
结合图11和图12所示,即将某个过期时间赋值至“cleartime”字段。
在操作S330中,在所述清理时间字段到期的情况下,删除所述缓存空间。
具体地,在到达“cleartime”字段指向的过期时间时,则将主键(最上层级)对应的整个缓存空间清理删除。设置缓存失效的清理时间可以针对性删除相关缓存空间,无需遍历整个缓存数据库,解决了缓存遍历处理效率低下的问题。换而言之,清理时间字段是针对缓存空间的。
当然,在同一业务数据存在更新的情况下,避免遍历缓存效率低下,针对性删除相关缓存。每个缓存方法枚举类都有预设的数据库表,这些表一旦有数据更新,需要对该缓存方法相关的缓存置失效。缓存删除方法循环所有与变更表相关的枚举值,每个枚举值计算主Key(同前面的逻辑),获取该主Key对象的各个字段,对于每一个字段参数键(或称Hkey)。其中,【方法级】删除该主Key对象中的该字段以及缓存中的这个Hkey。【用户级并且字段对应的Value等于该用户】删除该主key对象中的该字段以及缓存中的这个Hkey。换而言之,针对每个业务数据也可以设置相应的缓存失效开关,在数据库中源数据发生变化时,对应的缓存中的业务数据通过缓存失效开关进行清理后重新存入,重新存入的逻辑还是按照上述分级缓存的方法实施的。
需要说明的是,缓存空间并非直接存在的,在未涉及某主键的缓存时,则不存在相应的缓存空间,因此,针对在缓存空间中存储业务数据,还需要判断是否存在直接可用的同一主键下的缓存空间,具体如下所示:
图5示意性示出了根据本公开实施例的业务数据存入方法的流程图。
如图5所示,该实施例的业务数据存入方法包括操作S510~操作S530,该操作S510~操作S530至少可以部分执行上述操作S230。
在操作S510中,判断所述主键是否存在对应的所述缓存空间。
在操作S520中,在所述主键存在对应的所述缓存空间的情况下,判断所述缓存空间中是否存在对应的所述参数键。
在操作S530中,在所述缓存空间中不存在对应的所述参数键的情况下,将所述参数键和所述业务数据存入所述缓存空间。
具体地,针对主键存在缓存空间的情况下,进一步核查该缓存空间中是否存在参数键,存在则放入到该缓存空间中,无需重新建立其他的缓存空间,加速缓存效率。
在一个典型的场景中,判断缓存中参数key是否存在,存在直接返回结果数据,不存在就进行主业务逻辑的执行,并将主业务逻辑的结果数据放入缓存中:返回结果转换成字符串存到参数Key的Value中,并设置过期时间为注解入参的过期时间,同时将参数Key作为主Key的Field存到主Key中,该Hash结构缓存不设置过期时间,若主Key中不存在clearTime,将该Field设置为当前时间+10分钟用于Hash结构缓存的清理。
图6示意性示出了根据本公开实施例的另一种业务数据存入方法的流程图。
如图6所示,该实施例的另一种业务数据存入方法包括操作S610,该操作S610执行于上述操作S510后。
在操作S610中,在所述主键不存在对应的所述缓存空间的情况下,基于所述业务数据、所述主键和所述参数键,按照所述预设数据结构,建立缓存空间。
具体地,针对主键不存在缓存空间的情况下,则建立针对该主键的缓存空间,提升用户的缓存效率。
图7示意性示出了根据本公开实施例的另一种分级缓存方法的流程图。
如图7所示,该实施例的另一种业务数据存入方法包括操作S710~操作S720,该操作S710~操作S720执行于上述操作S210后。
在操作S710中,接收针对所述业务数据的动态变量,所述动态变量包括开启缓存和关闭缓存。
在操作S720中,在所述动态变量为关闭缓存的情况下,将所述业务数据发送至主业务逻辑执行。
具体地,从动态变量中获取缓存开关,如果是关闭,则直接降级处理进行主业务逻辑的执行,即无需缓存,直接执行主业务逻辑。
图8示意性示出了根据本公开实施例的数据查询方法的流程图。
如图8所示,该实施例的数据查询方法包括操作S810~操作S820,该方法可以服务器105执行。
在操作S810中,接收查询请求,所述查询请求包括参数键。
在操作S820中,基于所述参数键,直接查询缓存空间中的业务数据,其中,所述缓存空间是执行根据上述分级缓存方法得到的。
具体地,针对一些反复使用的高频数据,可以在一定期限内存储于缓存空间,等待用户主动查询,这样可以加快查询速度与查询效率。
在本公开的实施例中,为了缓解数据库的服务压力和查询效率偏低的技术问题。获取结果或者将业务方法结果数据存入缓存,既能减少服务耗时,满足用户体验,又能减少数据库访问次数提高系统性能。并且,采用预设数据结构实现数据的缓存空间,有利于在缓存的业务数据出现错误时实施纠错,便于纠错查询,提高纠错效率。
图9示意性示出了根据本公开实施例的另一种数据查询方法的流程图。
如图9所示,该实施例的另一种数据查询方法包括操作S910,该操作S910至少执行于操作S820后。
在操作S910中,响应于自生成的删除指令,删除所述缓存空间中的所述参数键和所述业务数据。
具体地,为了避免Hash结构缓存越来越庞大,用一个清理任务进行定期清理。循环所有枚举值,每个枚举值计算主Key(同前面的逻辑),获取该主键(主Key)对象的各个字段,对于每一个字段参数键(或称Hkey),如缓存中该Hkey不存在,则删除该主Key对象中的该字段。
以下,将介绍本公开实施例的一种实现方式,该实现方式是基于Java语言和Springboot框架,该实现的前提是已有分布式数据缓存服务可以直接使用,具体如下所示:
首先设计分级缓存部分:
一、枚举类和注解的设计:
(1)缓存分级枚举类CacheLevel用于定义该缓存方法的等级,该等级包括方法级或用户级。
(2)缓存方法枚举类MethodCacheType用于定义一个缓存方法(缓存方法)。
(3)注解MethodNosCacheable,入参为缓存方法枚举类MethodCacheType和过期时间expire,标注该注解的方法将在执行前被拦截,进入切面方法进行分级缓存处理。
二、切面程序中分级缓存处理机制的实现
(1)从动态变量中获取缓存注解开关,如果是关闭,则直接降级处理进行主业务逻辑的执行。
(2)根据注解入参的缓存方法枚举类methodCacheType计算主key,方法级缓存方法的主key=″method:″+方法名,用户级缓存方法的主key=″user:″+方法名。
(3)根据被切入方法的所有入参计算序列化后的Hash值hashArg。
(4)根据主key和入参序列化后的hash值计算参数key(cacheKey),方法级缓存方法的参数key=″method:″+方法名+″:″+hash值,用户级缓存方法的参数key=″user:″+方法名+″:″+用户id+″:″+hash值。
(5)判断缓存中参数key(cacheKey)是否存在,存在直接返回结果数据。
(6)否则就进行主业务逻辑的执行,并将主业务逻辑的结果数据放入缓存中:否则就进行主业务逻辑的执行,并将主业务逻辑的结果数据放入缓存中:返回结果value转换成字符串存到参数Key(cacheKey)的Value中,并设置过期时间为注解入参的过期时间expire,同时将cacheKey作为主Key的field存到主Key中,该Hash结构缓存不设置过期时间,若主key中不存在clearTime,将该Field设置为当前时间+10分钟用于hash结构缓存的清理。
其次,针对缓存删除部分:
一、业务数据更新删除缓存的实现。
缓存删除方法循环所有与变更表相关的枚举值,每个枚举值计算主key(同前面的逻辑),获取该主Key对象的各个字段,对于每一个字段Hkey(有一个参数Key与之对应):
针对方法级,删除该主Key对象中的该字段以及缓存中的Hkey。
针对用户级并且字段对应的Value等于该用户,删除该主Key对象中的该字段以及缓存中的该Hkey。
二、Hash结构缓存清理任务的实现
设计一个任务循环所有缓存方法枚举类MethodCacheType中的枚举值,每个枚举值计算主Key(同前面的逻辑),获取该主key对象的各个字段,对于每一个字段Hkey,如缓存中该Hkey不存在,则删除该主Key对象中的该字段。
基于上述分级缓存方法,本公开还提供了一种分级缓存装置。以下将结合图13对该装置进行详细描述。
图13示意性示出了根据本公开实施例的分级缓存装置的结构框图。
如图13所示,该实施例的分级缓存装置1300包括数据接收模块1310、键值计算模块1320和缓存空间存放模块1330。
数据接收模块1310用于接收业务数据和缓存方法信息。在一实施例中,数据接收模块1310可以用于执行前文描述的操作S210,在此不再赘述。
键值计算模块1320用于基于所述缓存方法信息,分别计算主键和参数键。在一实施例中,键值计算模块1320可以用于执行前文描述的操作S220,在此不再赘述。
缓存空间存放模块1330用于将所述业务数据、所述主键和所述参数键,存入预设数据结构形式的缓存空间中,所述预设数据结构包括N个层级的键值对,所述键值对包括Key和Value,N为大于1的正整数,其中,当所述主键作为Key时,所述主键所处层级的键值对中的Value用于存储下一层级的键值对的主键,或者所述主键所处层级的键值对中的Value用于存储参数键,其中,当所述参数键作为Key时,所述参数键所处层级的键值对中的Value用于存储所述业务数据。在一实施例中,缓存空间存放模块1330可以用于执行前文描述的操作S230,在此不再赘述。
在本公开的实施例中,为了缓解数据库的服务压力和查询效率偏低的技术问题。获取结果或者将业务方法结果数据存入缓存,既能减少服务耗时,满足用户体验,又能减少数据库访问次数提高系统性能。并且,采用预设数据结构实现数据的缓存空间,有利于在缓存的业务数据出现错误时实施纠错,便于纠错查询,提高纠错效率。
根据本公开的实施例,其中,所述缓存空间包括清理时间字段,所述装置还包括清理时间接收模块、清理时间配置模块以及缓存空间删除模块,所述清理时间接收模块,用于接收清理时间;所述清理时间配置模块,用于基于所述清理时间配置所述清理时间字段;以及所述缓存空间删除模块,用于在所述清理时间字段到期的情况下,删除所述缓存空间。
根据本公开的实施例,其中,所述缓存方法信息至少包括方法名以及缓存级别,所述缓存级别包括方法级和用户级,所述主键和所述参数键形成的键值对采用Hash结构,所述参数键和所述业务数据形成的键值对采用String结构,所述键值计算模块包括第一计算单元、第二计算单元、第三计算单元以及第四计算单元,所述第一计算单元,用于对于所述主键,当所述缓存级别为方法级时,基于所述方法级和所述方法名形成所述主键;所述第二计算单元,用于对于所述主键,当所述缓存级别为用户级时,基于所述用户级和所述方法名计算所述主键;所述第三计算单元,用于对于所述参数键,当所述缓存级别为方法级时,基于预设哈希值、所述方法级和所述方法名形成所述参数键;以及所述第四计算单元,用于对于所述参数键,当所述缓存级别为用户级时,基于预设哈希值、所述用户级和所述方法名形成所述参数键。
根据本公开的实施例,其中,所述缓存空间存放模块包括第一判断单元、第二判断单元以及业务数据存入单元,所述第一判断单元,用于判断所述主键是否存在对应的所述缓存空间;所述第二判断单元,用于在所述主键存在对应的所述缓存空间的情况下,判断所述缓存空间中是否存在对应的所述参数键;以及所述业务数据存入单元,用于在所述缓存空间中不存在对应的所述参数键的情况下,将所述参数键和所述业务数据存入所述缓存空间。
根据本公开的实施例,其中,所述缓存空间存放模块还包括缓存空间创建单元,所述缓存空间创建单元,用于在所述主键不存在对应的所述缓存空间的情况下,基于所述业务数据、所述主键和所述参数键,按照所述预设数据结构,建立缓存空间。
根据本公开的实施例,其中,所述装置还包括动态变量接收模块以及业务数据删除模块,所述动态变量接收模块,用于接收针对所述业务数据的动态变量,所述动态变量包括开启缓存和关闭缓存;以及所述业务数据删除模块,用于在所述动态变量为关闭缓存的情况下,将所述业务数据发送至主业务逻辑执行。
根据本公开的实施例,其中,所述分级缓存方法是基于切面编译实现的。
根据本公开的实施例,数据接收模块1310、键值计算模块1320和缓存空间存放模块1330中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,数据接收模块1310、键值计算模块1320和缓存空间存放模块1330中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,数据接收模块1310、键值计算模块1320和缓存空间存放模块1330中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
基于上述数据查询方法,本公开还提供了一种数据查询装置。以下将结合图14对该装置进行详细描述。
图14示意性示出了根据本公开实施例的数据查询装置的结构框图。
如图14所示,该实施例的数据查询装置1400包括请求接收模块1410和数据查询模块1420。
接收模块1410用于接收查询请求,所述查询请求包括参数键。在一实施例中,接收模块1410可以用于执行前文描述的操作S810,在此不再赘述。
数据查询模块1420用于基于所述参数键,直接查询缓存空间中的业务数据,其中,所述缓存空间是执行上述分级缓存方法得到的。在一实施例中,键数据查询模块1420可以用于执行前文描述的操作S820,在此不再赘述。
在本公开的实施例中,为了缓解数据库的服务压力和查询效率偏低的技术问题。获取结果或者将业务方法结果数据存入缓存,既能减少服务耗时,满足用户体验,又能减少数据库访问次数提高系统性能。并且,采用预设数据结构实现数据的缓存空间,有利于在缓存的业务数据出现错误时实施纠错,便于纠错查询,提高纠错效率。
根据本公开的实施例,其中,所述装置还包括业务数据删除模块,所述业务数据删除模块,用于响应于自生成的删除指令,删除所述缓存空间中的所述参数键和所述业务数据。
根据本公开的实施例,请求接收模块1410和数据查询模块1420中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,请求接收模块1410和数据查询模块1420中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,请求接收模块1410和数据查询模块1420中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图15示意性示出了根据本公开实施例的适于实现分级缓存、数据查询方法的电子设备的方框图。
如图15所示,根据本公开实施例的电子设备1500包括处理器1501,其可以根据存储在只读存储器(ROM)1502中的程序或者从存储部分1508加载到随机访问存储器(RAM)1503中的程序而执行各种适当的动作和处理。处理器1501例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器1501还可以包括用于缓存用途的板载存储器。处理器1501可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 1503中,存储有电子设备1500操作所需的各种程序和数据。处理器1501、ROM 1502以及RAM 1503通过总线1504彼此相连。处理器1501通过执行ROM 1502和/或RAM1503中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM1502和RAM1503以外的一个或多个存储器中。处理器1501也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备1500还可以包括输入/输出(I/O)接口1505,输入/输出(I/O)接口1505也连接至总线1504。电子设备1500还可以包括连接至I/O接口1505的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1507;包括硬盘等的存储部分1508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1509。通信部分1509经由诸如因特网的网络执行通信处理。驱动器1510也根据需要连接至I/O接口1505。可拆卸介质1511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1510上,以便于从其上读出的计算机程序根据需要被安装入存储部分1508。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM1502和/或RAM1503和/或ROM1502和RAM1503以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的物品推荐方法。
在该计算机程序被处理器1501执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分1509被下载和安装,和/或从可拆卸介质1511被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分1509从网络上被下载和安装,和/或从可拆卸介质1511被安装。在该计算机程序被处理器1501执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (14)
1.一种分级缓存方法,包括:
接收业务数据和缓存方法信息;
基于所述缓存方法信息,分别计算主键和参数键;以及
将所述业务数据、所述主键和所述参数键,存入预设数据结构形式的缓存空间中,所述预设数据结构包括N个层级的键值对,所述键值对包括Key和Value,N为大于1的正整数,
其中,当所述主键作为Key时,所述主键所处层级的键值对中的Value用于存储下一层级的键值对的主键,或者所述主键所处层级的键值对中的Value用于存储参数键,
其中,当所述参数键作为Key时,所述参数键所处层级的键值对中的Value用于存储所述业务数据。
2.根据权利要求1所述的方法,其中,所述缓存空间包括清理时间字段,
所述方法还包括:
接收清理时间;
基于所述清理时间配置所述清理时间字段;以及
在所述清理时间字段到期的情况下,删除所述缓存空间。
3.根据权利要求1或2所述的方法,其中,所述缓存方法信息至少包括方法名以及缓存级别,所述缓存级别包括方法级和用户级,
所述主键和所述参数键形成的键值对采用Hash结构,所述参数键和所述业务数据形成的键值对采用String结构,
所述基于所述缓存方法信息,分别计算主键和参数键,包括:
对于所述主键,当所述缓存级别为方法级时,基于所述方法级和所述方法名形成所述主键;
对于所述主键,当所述缓存级别为用户级时,基于所述用户级和所述方法名计算所述主键;
对于所述参数键,当所述缓存级别为方法级时,基于预设哈希值、所述方法级和所述方法名形成所述参数键;以及
对于所述参数键,当所述缓存级别为用户级时,基于预设哈希值、所述用户级和所述方法名形成所述参数键。
4.根据权利要求3所述的方法,其中,所述将所述业务数据、所述主键和所述参数键,存入预设数据结构形式的缓存空间中,包括:
判断所述主键是否存在对应的所述缓存空间;
在所述主键存在对应的所述缓存空间的情况下,判断所述缓存空间中是否存在对应的所述参数键;以及
在所述缓存空间中不存在对应的所述参数键的情况下,将所述参数键和所述业务数据存入所述缓存空间。
5.根据权利要求4所述的方法,其中,在所述判断所述主键是否存在对应的所述缓存空间后,还包括:
在所述主键不存在对应的所述缓存空间的情况下,基于所述业务数据、所述主键和所述参数键,按照所述预设数据结构,建立缓存空间。
6.根据权利要求1所述的方法,其中,在所述接收业务数据和缓存方法信息后,所述方法还包括:
接收针对所述业务数据的动态变量,所述动态变量包括开启缓存和关闭缓存;以及
在所述动态变量为关闭缓存的情况下,将所述业务数据发送至主业务逻辑执行。
7.根据权利要求1、2、4、5和6任一项所述的方法,其中,所述分级缓存方法是基于切面编译实现的。
8.一种数据查询方法,包括:
接收查询请求,所述查询请求包括参数键;以及
基于所述参数键,直接查询缓存空间中的业务数据,其中,所述缓存空间是执行根据权利要求1~7中任一项所述的方法得到的。
9.根据权利要求8所述的方法,其中,在所述基于所述参数键,直接查询缓存空间中的业务数据后,还包括:
响应于自生成的删除指令,删除所述缓存空间中的所述参数键和所述业务数据。
10.一种分级缓存装置,包括:
数据接收模块,用于接收业务数据和缓存方法信息;
键值计算模块,用于基于所述缓存方法信息,分别计算主键和参数键;以及
缓存空间存放模块,用于将所述业务数据、所述主键和所述参数键,存入预设数据结构形式的缓存空间中,所述预设数据结构包括N个层级的键值对,所述键值对包括Key和Value,N为大于1的正整数,其中,当所述主键作为Key时,所述主键所处层级的键值对中的Value用于存储下一层级的键值对的主键,或者所述主键所处层级的键值对中的Value用于存储参数键,其中,当所述参数键作为Key时,所述参数键所处层级的键值对中的Value用于存储所述业务数据。
11.一种数据查询装置,包括:
请求接收模块,用于接收查询请求,所述查询请求包括参数键;以及
数据查询模块,用于基于所述参数键,直接查询缓存空间中的业务数据,其中,所述缓存空间是执行根据权利要求1~7中任一项所述的方法得到的。
12.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~9中任一项所述的方法。
13.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~9中任一项所述的方法。
14.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311125421.2A CN117149832A (zh) | 2023-09-01 | 2023-09-01 | 分级缓存、数据查询方法、装置、设备、介质和程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311125421.2A CN117149832A (zh) | 2023-09-01 | 2023-09-01 | 分级缓存、数据查询方法、装置、设备、介质和程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117149832A true CN117149832A (zh) | 2023-12-01 |
Family
ID=88907572
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311125421.2A Pending CN117149832A (zh) | 2023-09-01 | 2023-09-01 | 分级缓存、数据查询方法、装置、设备、介质和程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117149832A (zh) |
-
2023
- 2023-09-01 CN CN202311125421.2A patent/CN117149832A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11860874B2 (en) | Multi-partitioning data for combination operations | |
US11151137B2 (en) | Multi-partition operation in combination operations | |
US11537572B2 (en) | Multidimensional partition of data to calculate aggregation at scale | |
US8554944B2 (en) | Mechanism for supporting user content feeds | |
US20110264759A1 (en) | Optimized caching for large data requests | |
CN110990420A (zh) | 数据查询方法、装置 | |
US11620345B2 (en) | Method and apparatus for a mechanism for event replay when a reroute of recordation of the event occurred in a multiplexed event recordation system | |
CN111241189B (zh) | 一种同步数据的方法和装置 | |
US11157467B2 (en) | Reducing response time for queries directed to domain-specific knowledge graph using property graph schema optimization | |
CN109947736B (zh) | 实时计算的方法和系统 | |
CN117762898A (zh) | 数据迁移方法、装置、设备及存储介质 | |
CN113760977A (zh) | 一种信息查询方法、装置、设备及存储介质 | |
CN117149832A (zh) | 分级缓存、数据查询方法、装置、设备、介质和程序产品 | |
CN113762702A (zh) | 工作流部署方法、装置、计算机系统和可读存储介质 | |
US11409796B1 (en) | Generational databases for managing time series data | |
US10691615B2 (en) | Client-side persistent caching framework | |
CN108984431B (zh) | 用于清空过期缓存的方法和装置 | |
CN113138943A (zh) | 一种处理请求的方法和装置 | |
Hsu et al. | Convergent causal consistency for social media posts | |
CN112783904B (zh) | 一种更新索引数据的方法和装置 | |
CN113821519B (zh) | 一种数据处理方法以及领域驱动设计架构 | |
CN111209308B (zh) | 一种优化分布式缓存的方法和装置 | |
US11556540B1 (en) | Transmission format cache for database reads | |
US20240362233A1 (en) | Democratized data profiling and validation | |
US20230376485A1 (en) | Distributed query plan generation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |