CN114064712A - 数据访问方法、装置、电子设备及计算机可读存储介质 - Google Patents
数据访问方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN114064712A CN114064712A CN202111208997.6A CN202111208997A CN114064712A CN 114064712 A CN114064712 A CN 114064712A CN 202111208997 A CN202111208997 A CN 202111208997A CN 114064712 A CN114064712 A CN 114064712A
- Authority
- CN
- China
- Prior art keywords
- data
- annotation
- cache
- interface
- search keyword
- 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
Images
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
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请适用于数据缓存技术领域,提供一种数据访问方法、装置、电子设备及计算机可读存储介质,该方法包括:接收第一终端的调用请求,所述调用请求包括第一参数;根据所述第一参数确定所述调用请求待调用的第一接口;获取所述第一接口的第一注解;根据所述第一注解确定搜索关键字;根据所述搜索关键字从缓存数据库获取与所述搜索关键字相对应的缓存数据,并将获取的所述缓存数据向所述第一终端发送;通过本申请可以解决开发效率低、数据访问效率低的问题。
Description
技术领域
本申请属于数据缓存技术领域,具体涉及一种数据访问方法、装置、电子设备及计算机可读存储介质。
背景技术
随着公司的发展壮大、用户的激增,公司系统中部分接口的访问量和访问频率不断提高,从而使得通过数据库提供的服务逐渐不能满足公司的需求。
目前主要通过缓存技术来解决频繁访问数据库带来的数据处理性能问题。然而,对于复杂的系统来说,由于其涉及的数据访问场景众多,且不同的数据访问场景还需要不同的缓存方式;对此,需要开发人员针对不同的缓存方式开发与不同缓存方式对应的代码;在需要增加缓存方式、修改缓存方式、缓存方式存在异常时,需要开发人员对代码进行重新开发;导致开发人员的工作负荷重,开发效率低。
发明内容
有鉴于此,本申请提供了一种数据访问方法、装置、电子设备及计算机可读存储介质,可以解决开发效率低的问题。
本申请实施例的第一方面提供了一种数据访问方法,包括:
接收第一终端的调用请求,所述调用请求包括第一参数;
根据所述第一参数确定所述调用请求待调用的第一接口;
获取所述第一接口的第一注解;
根据所述第一注解确定搜索关键字;
根据所述搜索关键字从缓存数据库获取与所述搜索关键字相对应的缓存数据,并将获取的所述缓存数据向所述第一终端发送。
在第一方面的另一种实现方式中,所述根据所述第一参数确定所述调用请求待调用的第一接口,包括:
通过AOP拦截所述调用请求;
根据拦截的所述调用请求中的第一参数确定待调用的第一接口。
在第一方面的另一种实现方式中,所述所述获取所述第一接口的第一注解,包括:
获取所述第一接口的第一注解和接口信息,所述接口信息包括:项目名、类名和方法名。
在第一方面的另一种实现方式中,所述根据所述第一注解确定搜索关键字,包括:
判断所述第一注解中是否存在第一key值;
若存在所述第一key值,则将所述第一key值确定为所述搜索关键字;
若不存在所述第一key值,则根据所述第一参数和所述接口信息生成第二key值,并将生成的所述第二key值确定为所述搜索关键字。
在第一方面的另一种实现方式中,所述将获取的所述缓存数据向所述第一终端发送,包括:
判断所述第一注解中是否存在所述缓存数据的显示策略;
若存在所述显示策略,则基于所述显示策略向所述第一终端发送所述缓存数据。
在第一方面的另一种实现方式中,所述第一注解还包括缓存数据过期时间,其中,所述缓存数据过期时间表示所述缓存数据库中与所述根据第一注解确定的所述搜索关键字对应的缓存数据的过期时间;
所述根据所述搜索关键字从缓存数据库获取与所述搜索关键字相对应的缓存数据,包括:
根据所述缓存数据过期时间判断与所述根据第一注解确定的所述搜索关键字对应的所述缓存数据是否过期;
若与所述根据第一注解确定的所述搜索关键字对应的所述缓存数据未过期,则根据所述搜索关键字到所述缓存数据库获取与所述搜索关键字相对应的缓存数据;
若与所述根据第一注解确定的所述搜索关键字对应的所述缓存数据过期,则根据所述搜索关键字从源数据库获取与所述搜索关键字相对应的缓存数据,所述缓存数据库中的缓存数据为所述源数据库中搜索频次大于预设频次的数据。在第一方面的另一种实现方式中,所述将获取的所述缓存数据向所述第一终端发送,包括:
判断所述第一注解中是否存在所述缓存数据的显示策略;
若存在所述显示策略,则基于所述显示策略向所述第一终端发送所述缓存数据。
在第一方面的另一种实现方式中,所述数据访问方法还包括:
接收第二终端的数据上传请求,所述数据上传请求用于上传第一数据和所述第一数据的第二注解;
在接收到所述第一数据和所述第一数据的第二注解之后,将所述第一数据和所述第一数据的第二注解同步到所述缓存数据库;
相应的,所述根据所述搜索关键字从缓存数据库获取与所述搜索关键字相对应的缓存数据包括:
从所述缓存数据库中获取与所述搜索关键字匹配的所述第二注解;
获取与所述搜索关键字匹配的所述第二注解对应的所述第一数据。
本申请实施例的第二方面提供了一种数据访问装置,包括:
请求接收模块,用于接收第一终端的调用请求,所述调用请求包括第一参数;
接口确定模块,用于根据所述第一参数确定所述调用请求待调用的第一接口;
注解获取模块,获取所述第一接口的第一注解;
搜索关键字确定模块,用于根据所述第一注解确定搜索关键字;
缓存数据获取模块,用于根据所述搜索关键字从缓存数据库获取与所述搜索关键字相对应的缓存数据,并将获取的所述缓存数据向所述第一终端发送。
本申请实施例的第三方面提供了一种电子设备,所述电子设备包括处理器,所述处理器用于运行存储器中存储的计算机程序,以实现如权利要求1至7任一项所述的数据访问方法。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上第一方面所述的数据访问方法。
本申请实施例中接收第一终端的调用请求,所述调用请求包括第一参数;根据所述第一参数确定所述调用请求待调用的第一接口;获取所述第一接口的第一注解;根据所述第一注解确定搜索关键字;根据所述搜索关键字从缓存数据库获取与所述搜索关键字相对应的缓存数据,并将获取的所述缓存数据向所述第一终端发送。上述数据访问方法中,将多个缓存数据库合并为一个缓存数据库,在开发阶段,开发人员开发一套缓存数据库,无需针对不同场景开发不同缓存方式对应的缓存数据库,减轻了工作人员的工作负荷;另外,在合并后的缓存数据库的接口预先配置好注解信息,同时,合并后的缓存数据库中的缓存数据也包含注解信息,从而可以基于接口的注解信息从合并后的缓存数据库中快速搜索缓存数据,提高数据访问效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图,而并不超出本申请要求保护的范围。
图1示出本申请实施例提供的一种数据访问方法的流程意图;
图2示出本申请另一实施例提供的一种数据访问方法的流程示意图;
图3示出本申请另一实施例提供的一种数据访问方法的流程示意图;
图4示出本申请另一实施例提供的一种数据访问方法的流程示意图;
图5示出本申请另一实施例提供的一种数据访问方法的流程示意图;
图6示出本申请实施例提供的一种数据访问装置的组成示意框图;
图7示出本申请实施例提供的一种电子设备的组成示意框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
为了更加清楚、完整的说明本申请的技术方案,以下将以示例的形式呈现本申请的技术方案。
本申请实施例的执行主体为服务器,其中服务器中包括:展示系统、缓存数据库、源数据库和录入系统。
展示系统中包含多个可供第一终端访问的接口。缓存数据库存储多个接口可查询的缓存数据。源数据库存储源数据。缓存数据库中存储的缓存数据为源数据库中的搜索频次较高(例如,搜索频次大于预设频次)的数据。录入系统可以接收第二终端的数据上传请求并将第二终端上传的数据发送至源数据库,并同步至缓存数据库。
作为示例,本申请实施例中的服务器可以为淘宝服务器,展示系统可以为用户系统,录入系统可以为商家系统,第一终端可以为用户终端,该用户终端可以访问展示系统中各个接口的缓存数据,第二终端可以为商家终端,该商家终端可以向录入系统发送数据上传请求,录入系统接收商家终端发送的数据上传请求后,将数据上传请求中待上传的数据同步至缓存数据库供用户终端访问。
首先,服务器接收商家终端向录入系统发送的数据上传请求,并将数据上传请求中的待上传数据和待上传数据的第二注解同步至缓存数据库供用户终端访问。作为示例,假设商家终端通过录入系统新增了一个耐克的足球,但是此时缓存数据库中没有这个耐克的足球。如果用户终端在展示系统上搜索足球,就不会展示出来这个耐克的足球,此时,只需要商家终端在录入系统上配置第二注解,该第二注解包含“足球接口”的项目名、类名、方法名、第一参数,或者自定义的key值。商家终端在录入系统新增完耐克足球这个数据后,服务器会通过AOP将第二注解中的数据发送到缓存数据库和源数据库。缓存数据库接收这些数据后来拼接这些信息或者采用自定义的key值,从缓存数据库中删除和此key值映射的缓存键对应的缓存数据,重新生成新的缓存数据存放在缓存数据库中,此时用户终端再次通过展示系统搜索足球时就能看到耐克的足球了。
当用户通过用户终端上的淘宝APP访问展示系统时,用户终端首先向展示系统发送一个调用请求,其中调用请求中包含了第一参数,服务器接收到用户发送的调用请求后,根据调用请求中的第一参数确定用户待调用的第一接口。
作为示例,假设用户终端通过展示系统的搜索接口向服务器发送了一个调用足球的请求,其中“足球”就是调用请求中携带的第一参数。服务器接收到该调用请求后,服务器通过AOP获取该调用请求中携带的第一参数“足球”,以确定用户待调用的第一接口为“足球接口”,此时,服务器通过AOP自动获取预先为该“足球接口”配置的注解信息,其中,注解信息中包括了缓存数据过期时间,同时也会获取该“足球接口”的接口信息,其中接口信息包括了“足球接口”的项目名称、类名和方法名,对应的,“足球接口”的项目名称即为展示系统,“足球接口”的类名为搜索类,“足球接口”的方法名为调用足球数据。服务器获取到“足球接口”的注解和接口信息后,就会判断“足球接口”的注解信息中是否包括了第一key值,若包括了第一key值,则服务器就会将该第一key值作为“足球接口”的搜索关键字,若注解中不包含第一key值,则服务器会根据接收的调用请求中的第一参数、“足球接口”的项目名、类名和方法名,为“足球接口”生成第二key值(若预先设置了第一key值,则第一key值和第二key值的数据结构相同),并将生成的第二key值确定为“足球接口”的搜索关键字,在获取到“足球接口”的搜索关键字之后,服务器会根据注解信息中的缓存数据过期时间判断与“足球接口”对应的足球数据是否过期,若未过期,则服务器会根据获取的“足球接口”的搜索关键字到缓存数据库中获取足球数据,在获取到足球数据后,服务器还会判断下“足球接口”的注解中是否包含了显示策略参数,若存在显示策略参数,则服务器就会调用相应的显示策略类对获取的足球数据进行策略处理,并将处理后的足球数据发送至用户终端。
作为示例,假设注解中包含的显示策略参数对应的显示策略类的方法是将获取的足球数据按照价格从低到高排序,则服务器就会将获取的足球数据按照价格从低到高的顺序排好后发送至用户终端;若服务器根据注解中的缓存数据过期时间判断与“足球”接口对应的缓存数据已经过期,则服务器就会从源数据库获取与“足球接口”对应的足球数据,在注解包含显示策略参数时,将从数据库获取的足球数据按价格从低到高排完序发送至用户终端,并将从源数据库中获取的足球数据同步至缓存数据库。
下面将通过具体实施例对本申请的技术方案做清楚完整的说明,具体如下:
参见图1,是本申请实施例提供的一种数据访问方法的流程示意图,如图所示,该数据访问方法包括以下步骤:
S10,接收第一终端的调用请求,该调用请求包括第一参数。
本申请实施例中,服务器接收第一终端的调用请求,作为示例,第一终端可以为上述描述中的用户终端,调用请求可以为服务器接收到的用户终端向用户系统发送的调用请求,第一参数可以为上述描述中的“足球”。
为了便于描述,此处将接收的第一终端的调用请求中携带的参数定义为第一参数。
S11,根据第一参数确定调用请求待调用的第一接口。
本申请实施例中,服务器接收到第一终端发送的调用请求后,根据调用请求中的第一参数确定用户终端待调用的接口,为了便于描述,此处将根据第一参数确定的调用请求待调用的接口定义为第一接口。
作为示例,第一接口可以为上述描述中的“足球接口”。
参见图2,在本申请另一实施例中,根据第一参数确定调用请求待调用的第一接口,包括:
S1101,通过AOP拦截调用请求。
本申请实施例中,AOP(Aspect Oriented Programming,面向切面编程)面向对象的特点是继承、多态和封装。也就是说,为不同的类设计不同的方法,便于代码分散到一个个类中,降低代码的复杂程度,使类可以重用。也可以说它是拦截者框架Interceptor,想要对一些方法的吃参数进行监控,监控后可以像日志一样的给我们,程序运行时调用一个一个方法,我们在这些方法的前后插入方法,就像切面一样切进去插入拦截方法实现监控。
此处,服务器在接收到第一终端发送的调用请求后,服务器首先会通过AOP拦截该调用请求。
S1102,根据拦截的所述调用请求中的第一参数确定待调用的第一接口。
本申请实施例中,服务器根据AOP拦截的调用请求中的第一参数确定第一终端待调用的第一接口。
S12,获取第一接口的第一注解。
本申请实施例中,服务器根据确定的待调用的第一接口,获取预先配置在第一接口上的注解。为了便于描述,此处将获取的第一接口的注解定义为第一注解。
在本申请另一实施例中,获取第一接口的第一注解,包括:
获取第一接口的第一注解和接口信息。
接口信息包括:项目名、类名和方法名。
本申请实施例中,服务器在获取第一接口的第一注解时,也会获取第一接口的接口信息,具体示例可参见上文中的描述,在此不再重复说明。
S13,根据第一注解确定搜索关键字。
本申请实施例中,服务器可以根据获取的第一接口的第一注解,为第一接口确定搜索关键字。
参见图3,在本申请另一实施例中,根据第一注解确定搜索关键字,包括:
S1301,判断所述第一注解中是否存在第一key值。
本申请实施例中,服务器通过AOP获取到第一接口的第一注解后,判断第一注解中是否包含了key值,为了便于描述,此处将第一注解中可能包含的key值定义为第一key值。
S1302,若存在所述第一key值,则将所述第一key值确定为所述搜索关键字。
本申请实施例中,服务器判断完后确定第一注解中存在第一key值,则服务器就将该第一key值定义为第一接口的搜索关键字。
S1303,若不存在所述第一key值,则根据所述第一参数和所述接口信息生成第二key值,并将生成的所述第二key值确定为所述搜索关键字。
本申请实施例中,服务器判断完后确定第一注解中不存在第一key值,则服务器就会将第一终端调用请求中的第一参数、第一接口的项目名称、类名和方法名按照一定的拼接规则进行拼接,生成第二key值,并将生成的第二key值确定为第一接口的搜索关键字。
S14,根据搜索关键字从缓存数据库获取与搜索关键字相对应的缓存数据,并将获取的缓存数据向第一终端发送。
本申请实施例中,服务器根据获取的第一接口的第一注解为第一接口确定搜索关键字后,根据确定的该搜索关键字到缓存数据库获取与搜索关键字对应的缓存数据。
参见图4,在本申请另一实施例中,根据搜索关键字从缓存数据库获取与搜索关键字相对应的缓存数据,包括:
S1401,根据缓存数据过期时间判断与根据第一注解确定的搜索关键字对应的缓存数据是否过期。
本申请实施例中,第一注解中包含了缓存数据过期时间,其中,缓存数据过期时间表示缓存数据库中与根据第一注解确定的搜索关键字对应的缓存数据的过期时间。如此一来,服务器即可根据第一注解中的缓存数据过期时间判断与根据第一注解确定的搜索关键字对应的缓存数据是否过期。
S1402,若与第一注解确定的搜索关键字对应的缓存数据未过期,则根据搜索关键字到缓存数据库获取与搜索关键字相对应的缓存数据。
本申请实施例中,服务器判断完后确定,与根据第一注解确定的搜索关键字对应的缓存数据未过期,则服务器就会根据该搜索关键字到缓存数据库中搜索与搜索关键字对应的缓存数据。
S1403,若与第一注解确定的搜索关键字对应的缓存数据过期,则根据搜索关键字从源数据库获取与搜索关键字相对应的缓存数据。
本申请实施例中,服务器判断完后确定,与根据第一注解确定的搜索关键字对应的缓存数据已过期,则服务器就会根据该搜索关键字从源数据库中获取与搜索关键字对应的数据。其中,缓存数据库中的缓存数据为源数据库中搜索频次大于预设频次的数据。
参见图5,在本申请另一实施例中,将获取的缓存数据向第一终端发送,包括:
S1404,判断第一注解中是否存在缓存数据的显示策略。
本申请实施例中,根据S1401~S1403描述的技术方案,服务器已经获取到了与根据第一注解确定的搜索关键字对应的缓存数据,此时,服务器会判断下第一注解中是否包含了针对获取的缓存数据的显示策略,其中,显示策略包含了显示策略参数和显示策略类,该显示策略用于指定获取的缓存数据根据配置的显示策略展示给用户终端。
S1405,若存在显示策略,则基于显示策略向第一终端发送缓存数据。
本申请实施例中,服务器判断后确定第一注解中存在显示策略,则服务器就会将通过S1401~S1403获取的缓存数据按照显示策略展示给用户终端,若不存在显示策略,则服务器就会将S1401~S1403获取的缓存数据直接展示给用户终端。
在本申请另一实施例中,数据访问方法还包括:
S15,接收第二终端的数据上传请求,数据上传请求用于上传第一数据和第一数据的第二注解。
本申请实施例中,服务器接收第二终端的数据上传请求,其中,第二终端可以为上述描述中的商家终端,第一数据可以为上述描述中用户终端在录入系统中新增加或者修改的数据,第二注解是为第一数据配置的注解,该注解包括第一数据的项目名、类名、方法名、参数或者自定义的key值。具体示例可参照上文中描述,在此不再重复说明。
S16,在接收到第一数据和第一数据的第二注解之后,将第一数据和第一数据的第二注解同步到缓存数据库。
本申请实施例中,服务器接收到第一数据和第一数据的注解后,就会通过AOP将接收的上述数据和数据的注解发送至源数据库中,并同步至缓存数据库来供第一终端调用。
为了便于描述,此处将第一数据的注解定义为第二注解。
相应的,根据搜索关键字从缓存数据库获取与搜索关键字相对应的缓存数据包括:
从缓存数据库中获取与搜索关键字匹配的第二注解
本申请实施例中,服务器在接收到第一数据调用请求时,根据第一数据的第二注解确定第一数据的搜索关键字,并根据确定的搜索关键字到缓存数据库获取与搜索关键字匹配的第二注解,其中,第二注解中包括第一数据的搜索关键字。
获取与搜索关键字匹配的第二注解对应的第一数据。
本申请实施例中,服务器根据接收的第一数据调用请求,在缓存数据库中获取到了与第一数据的搜索关键字匹配的第二注解后,将缓存数据库中获取与第二注解对应的第一数据。
本申请提出的上述数据访问方法,将多个缓存数据库合并为一个缓存数据库,在开发阶段,开发人员开发一套缓存数据库,无需针对不同场景开发不同缓存方式对应的缓存数据库,例如,在数据量小且变化不频繁的系统参数,使用快速高效的内存缓存;对于数据量大且多个应用需要共享交易数据,使用缓存热点数据的Redis缓存;对于单次交易的热点数据,使用线程缓存;与此同时,在合并后的缓存数据库的接口预先配置好注解信息,同时,合并后的缓存数据库中的缓存数据也包含注解信息,从而可以基于接口的注解信息从合并后的缓存数据库中快速搜索缓存数据,如此一来既减轻了开发人员的工作负荷,也提高了数据访问效率。
如图6所示,是本申请实施例提供的数据访问装置的示意框图,为了便于说明,仅示出与本申请实施例相关的部分。所述数据访问装置6,包括:
请求接收模块610,用于接收第一终端的调用请求,所述调用请求包括第一参数;
接口确定模块620,用于根据所述第一参数确定所述调用请求待调用的第一接口;
注解获取模块630,获取所述第一接口的第一注解;
搜索关键字确定模块640,用于根据所述第一注解确定搜索关键字;
缓存数据获取模块650,用于根据所述搜索关键字从缓存数据库获取与所述搜索关键字相对应的缓存数据,并将获取的所述缓存数据向所述第一终端发送。
在本申请另一实施例中,所述接口确定模块620还用于:
通过AOP拦截所述调用请求;
根据拦截的所述调用请求中的第一参数确定待调用的第一接口。
在本申请另一实施例中,所述注解获取模块630还用于:
获取所述第一接口的第一注解和接口信息,所述接口信息包括:项目名、类名和方法名。
在本申请另一实施例中,所述搜索关键字确定模块640还用于:
判断所述第一注解中是否存在第一key值;
若存在所述第一key值,则将所述第一key值确定为所述搜索关键字;
若不存在所述第一key值,则根据所述第一参数和所述接口信息生成第二key值,并将生成的所述第二key值确定为所述搜索关键字。
可选的,第一注解还包括缓存数据过期时间,其中,缓存数据过期时间表示缓存数据库中与根据第一注解确定的搜索关键字对应的缓存数据的过期时间。
在本申请另一实施例中,所述缓存数据获取模块650还用于:
根据缓存数据过期时间判断与根据第一注解确定的搜索关键字对应的缓存数据是否过期;
若与根据第一注解确定的搜索关键字对应的缓存数据未过期,则根据搜索关键字到缓存数据库获取与搜索关键字相对应的缓存数据;
若与根据第一注解确定的搜索关键字对应的缓存数据过期,则根据搜索关键字从源数据库获取与搜索关键字相对应的缓存数据,缓存数据库中的缓存数据为源数据库中搜索频次大于预设频次的数据。
在本申请另一实施例中,所述缓存数据获取模块650还用于:
判断所述第一注解中是否存在所述缓存数据的显示策略;
若存在所述显示策略,则基于所述显示策略向所述第一终端发送所述缓存数据。
在本申请另一实施例中,所述数据访问装置6还包括:
数据同步模块660,用于接收第二终端的数据上传请求,所述数据上传请求用于上传第一数据和所述第一数据的第二注解;
在接收到所述第一数据和所述第一数据的第二注解之后,将所述第一数据和所述第一数据的第二注解同步到所述缓存数据库;
在本申请另一实施例中,所述缓存数据获取模块650还用于:
从所述缓存数据库中获取与所述搜索关键字匹配的所述第二注解;
获取与所述搜索关键字匹配的所述第二注解对应的所述第一数据。
需要说明的是,上述装置/模块之间的执行过程和相互之间的信息交互与本申请实施例提供的数据访问方法基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
如图7所示,是本申请实施例提供的电子设备的示意框图,该实施例的电子设备7包括:
一个或多个处理器700、存储器710以及存储在所述存储器710中并可在所述处理器700上运行的计算机程序720。所述处理器700执行所述计算机程序720时实现上述各个方法实施例中的步骤,例如图1所示的步骤S10至S14。
示例性的,所述计算机程序720可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器710中,并由所述处理器700执行,以完成本申请所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序720在所述电子设备7中的执行过程。例如所述计算机程序720可以被分割成请求接收模块、接口确定模块、注解获取模块、搜索关键字确定模块和缓存数据获取模块,示例性的:
请求接收模块610,用于接收第一终端的调用请求,所述调用请求包括第一参数;
接口确定模块620,用于根据所述第一参数确定所述调用请求待调用的第一接口;
注解获取模块630,获取所述第一接口的第一注解;
搜索关键字确定模块640,用于根据所述第一注解确定搜索关键字;
缓存数据获取模块650,用于根据所述搜索关键字从缓存数据库获取与所述搜索关键字相对应的缓存数据,并将获取的所述缓存数据向所述第一终端发送。
所述电子设备包括但不仅限于处理器700、存储器710。本领域技术人员可以理解,图7仅仅是电子设备7的一个示例,并不构成对电子设备7的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备7还可以包括输入设备、输出设备、网络接入设备、总线等。
所述处理器700可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器710可以是所述电子设备7的内部存储单元,例如电子设备7的硬盘或内存。所述存储器710也可以是所述电子设备7的外部存储设备,例如所述电子设备7上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器710还可以既包括所述电子设备7的内部存储单元也包括外部存储设备。所述存储器710用于存储所述计算机程序以及所述电子设备7所需的其他程序和数据。所述存储器710还可以用于暂时地存储已经输出或者将要输出的数据。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的异常处理方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本申请的方法及其核心思想。同时,本领域技术人员依据本申请的思想,基于本申请的具体实施方式及应用范围上做出的改变或变形之处,都属于本申请保护的范围。综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种数据访问方法,其特征在于,所述数据访问方法包括:
接收第一终端的调用请求,所述调用请求包括第一参数;
根据所述第一参数确定所述调用请求待调用的第一接口;
获取所述第一接口的第一注解;
根据所述第一注解确定搜索关键字;
根据所述搜索关键字从缓存数据库获取与所述搜索关键字相对应的缓存数据,并将获取的所述缓存数据向所述第一终端发送。
2.如权利要求1所述的数据访问方法,其特征在于,所述根据所述第一参数确定所述调用请求待调用的第一接口,包括:
通过AOP拦截所述调用请求;
根据拦截的所述调用请求中的第一参数确定待调用的第一接口。
3.如权利要求2所述的数据访问方法,其特征在于,所述获取所述第一接口的第一注解,包括:
获取所述第一接口的第一注解和接口信息,所述接口信息包括:项目名、类名和方法名。
4.如权利要求3所述的数据访问方法,其特征在于,所述根据所述第一注解确定搜索关键字,包括:
判断所述第一注解中是否存在第一key值;
若存在所述第一key值,则将所述第一key值确定为所述搜索关键字;
若不存在所述第一key值,则根据所述第一参数和所述接口信息生成第二key值,并将生成的所述第二key值确定为所述搜索关键字。
5.如权利要求4所述的数据访问方法,其特征在于,所述第一注解还包括缓存数据过期时间,其中,所述缓存数据过期时间表示所述缓存数据库中与所述根据第一注解确定的所述搜索关键字对应的缓存数据的过期时间;
所述根据所述搜索关键字从缓存数据库获取与所述搜索关键字相对应的缓存数据,包括:
根据所述缓存数据过期时间判断与所述根据第一注解确定的所述搜索关键字对应的所述缓存数据是否过期;
若与所述根据第一注解确定的所述搜索关键字对应的所述缓存数据未过期,则根据所述搜索关键字到所述缓存数据库获取与所述搜索关键字相对应的缓存数据;
若与所述根据第一注解确定的所述搜索关键字对应的所述缓存数据过期,则根据所述搜索关键字从源数据库获取与所述搜索关键字相对应的缓存数据,所述缓存数据库中的缓存数据为所述源数据库中搜索频次大于预设频次的数据。
6.如权利要求1所述的方法,其特征在于,将获取的所述缓存数据向所述第一终端发送,包括:
判断所述第一注解中是否存在所述缓存数据的显示策略;
若存在所述显示策略,则基于所述显示策略向所述第一终端发送所述缓存数据。
7.如权利要求6所述的数据访问方法,其特征在于,所述数据访问方法还包括:
接收第二终端的数据上传请求,所述数据上传请求用于上传第一数据和所述第一数据的第二注解;
在接收到所述第一数据和所述第一数据的第二注解之后,将所述第一数据和所述第一数据的第二注解同步到所述缓存数据库;
相应的,所述根据所述搜索关键字从缓存数据库获取与所述搜索关键字相对应的缓存数据包括:
从所述缓存数据库中获取与所述搜索关键字匹配的所述第二注解;
获取与所述搜索关键字匹配的所述第二注解对应的所述第一数据。
8.一种数据访问装置,其特征在于,包括:
请求接收模块,用于接收第一终端的调用请求,所述调用请求包括第一参数;
接口确定模块,用于根据所述第一参数确定所述调用请求待调用的第一接口;
注解获取模块,获取所述第一接口的第一注解;
搜索关键字确定模块,用于根据所述第一注解确定搜索关键字;
缓存数据获取模块,用于根据所述搜索关键字从缓存数据库获取与所述搜索关键字相对应的缓存数据,并将获取的所述缓存数据向所述第一终端发送。
9.一种电子设备,其特征在于,所述电子设备包括处理器,所述处理器用于运行存储器中存储的计算机程序,以实现如权利要求1至7任一项所述的数据访问方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的数据访问方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111208997.6A CN114064712A (zh) | 2021-10-18 | 2021-10-18 | 数据访问方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111208997.6A CN114064712A (zh) | 2021-10-18 | 2021-10-18 | 数据访问方法、装置、电子设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114064712A true CN114064712A (zh) | 2022-02-18 |
Family
ID=80234795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111208997.6A Pending CN114064712A (zh) | 2021-10-18 | 2021-10-18 | 数据访问方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114064712A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116455917A (zh) * | 2023-06-15 | 2023-07-18 | 上海观安信息技术股份有限公司 | 数据同步方法及装置、电子设备和计算机可读存储介质 |
-
2021
- 2021-10-18 CN CN202111208997.6A patent/CN114064712A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116455917A (zh) * | 2023-06-15 | 2023-07-18 | 上海观安信息技术股份有限公司 | 数据同步方法及装置、电子设备和计算机可读存储介质 |
CN116455917B (zh) * | 2023-06-15 | 2023-09-22 | 上海观安信息技术股份有限公司 | 数据同步方法及装置、电子设备和计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109145051A (zh) | 分布式数据库的数据汇总方法及装置和电子设备 | |
CN110019263B (zh) | 信息存储方法和装置 | |
CN110764748B (zh) | 代码调用方法、装置、终端及存储介质 | |
US10073646B2 (en) | Multi-tier data synchronizer based on concurrent linked list | |
CN110955578A (zh) | 基于宿主机的日志收集方法、装置、计算机设备及存储介质 | |
CN112416425B (zh) | App构建方法、装置、计算机设备及存储介质 | |
CN107644075B (zh) | 收集页面信息的方法和装置 | |
CN112667415B (zh) | 数据调用方法、装置、可读存储介质及电子设备 | |
CN113435862B (zh) | 基于邮箱的票据处理方法及装置 | |
WO2019109519A1 (zh) | 业务规则管理方法、装置、设备及计算机可读存储介质 | |
CN115587575A (zh) | 数据表创建方法、目标数据查询方法、装置及设备 | |
CN111563015A (zh) | 数据监控方法及装置、计算机可读介质及终端设备 | |
CN112115105A (zh) | 一种业务处理方法、装置及设备 | |
CN111159040A (zh) | 一种测试数据生成方法、装置、设备及存储介质 | |
CN114064712A (zh) | 数据访问方法、装置、电子设备及计算机可读存储介质 | |
CN114139161A (zh) | 一种批量检测漏洞的方法、装置、电子设备及介质 | |
CN108959294B (zh) | 一种访问搜索引擎的方法和装置 | |
CN117557394A (zh) | 智能对账方法、系统、设备及储存介质 | |
CN112559913A (zh) | 一种数据处理方法、装置、计算设备及可读存储介质 | |
CN111753141B (zh) | 一种数据管理方法及相关设备 | |
CN115098297B (zh) | 一种云原生存储数据卷的一致性快照生成方法和系统 | |
CN107451050B (zh) | 函数获取方法和装置、服务器 | |
CN114461909A (zh) | 信息处理方法、信息处理装置、电子设备和存储介质 | |
CN114968960A (zh) | 日志处理方法、装置、计算机设备及存储介质 | |
CN114756362A (zh) | 资源配额管理方法及系统、智能终端、存储介质 |
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 |