System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,特别是涉及一种数据查询方法、装置、设备及计算机存储介质。
技术介绍
1、缓存(cache)是指数据交换的缓冲区,当某一硬件要读取数据时,会首先从缓存中查找需要的数据。如果在缓存中找到了所需的数据则直接执行,未找到所需的数据则从内存中查找。当前使用的缓存技术有分布式高速缓存系统(memcached)、键值对存储数据库(redis)以及进程内缓存框架(ehcache)等。
2、相关技术中,缓存逻辑与业务逻辑交织在一起,如果想从一种缓存技术变更为另一种缓存技术便需要对业务代码进行大量的修改,变更难度较大进而导致系统的可扩展性相对较低。
技术实现思路
1、基于上述问题,本申请提供了一种数据查询方法、装置、设备及计算机存储介质,改善系统的可扩展性。
2、本申请实施例公开了如下技术方案:
3、第一方面,本申请实施例提供一种数据查询方法,所述方法包括:
4、获取客户端发送的数据获取请求,所述数据获取请求用于请求获取目标数据,所述数据获取请求携带所述目标数据的数据标识;
5、根据所述数据标识在缓存中对所述目标数据进行查询并得到查询结果;所述缓存基于注解进行配置;
6、当所述查询结果指示所述缓存命中所述目标数据时,从所述缓存中获取所述目标数据并将所述目标数据发送给所述客户端。
7、可选地,所述数据标识为注解,根据所述数据标识在缓存中对所述目标数据进行查询并得到查询结果,具体包括:
8、根
9、根据所述缓存键在缓存中对所述目标数据进行查询并得到查询结果。
10、可选地,所述查询结果指示所述缓存未命中所述目标数据时,所述方法还包括:
11、根据所述数据标识从数据库中获取所述目标数据,并将所述目标数据加载到所述缓存中;
12、从所述缓存中获取所述目标数据并将所述目标数据发送给所述客户端。
13、可选地,所述方法还包括:
14、记录所述客户端从所述缓存中获取所述目标数据的频率;
15、当所述频率大于预设阈值且所述目标数据的状态为过期状态时,将所述目标数据、最近一次加载所述目标数据的时间和所述目标数据的缓存实效进行封装并将封装后的数据加载到所述缓存中。
16、可选地,所述方法还包括:
17、每隔预设时间间隔对缓存中的数据进行刷新。
18、可选地,所述方法还包括:
19、响应于所述数据库中数据的变化,确定所述缓存中对应的数据;
20、对所述缓存中对应的数据进行更新。
21、第二方面,本申请实施例提供一种数据查询装置,所述装置包括:第一获取模块、查询模块和第二获取模块;
22、所述第一获取模块,用于获取客户端发送的数据获取请求,所述数据获取请求用于请求获取目标数据,所述数据获取请求携带所述目标数据的数据标识;
23、所述查询模块,用于根据所述数据标识在缓存中对所述目标数据进行查询并得到查询结果;所述缓存基于注解进行配置;
24、所述第二获取模块,用于当所述查询结果指示所述缓存命中所述目标数据时,从所述缓存中获取所述目标数据并将所述目标数据发送给所述客户端。
25、可选地,所述查询模块,具体用于:
26、根据所述注解生成缓存键;
27、根据所述缓存键在缓存中对所述目标数据进行查询并得到查询结果。
28、可选地,所述第二获取模块,具体用于根据所述数据标识从数据库中获取所述目标数据,并将所述目标数据加载到所述缓存中;从所述缓存中获取所述目标数据并将所述目标数据发送给所述客户端。
29、可选地,所述装置还包括:加载模块;
30、所述加载模块,用于记录所述客户端从所述缓存中获取所述目标数据的频率;当所述频率大于预设阈值且所述目标数据的状态为过期状态时,将所述目标数据、最近一次加载所述目标数据的时间和所述目标数据的缓存实效进行封装并将封装后的数据加载到所述缓存中。
31、可选地,所述装置还包括:刷新模块;
32、所述刷新模块,用于每隔预设时间间隔对缓存中的数据进行刷新。
33、可选地,所述装置还包括:更新模块;
34、所述更新模块,用于响应于所述数据库中数据的变化,确定所述缓存中对应的数据;对所述缓存中对应的数据进行更新。
35、相较于现有技术,本申请具有以下有益效果:
36、首先,获取客户端发送的数据获取请求,数据获取请求用于请求获取目标数据,数据获取请求携带目标数据的数据标识;然后,根据数据标识在缓存中对目标数据进行查询并得到查询结果;缓存基于注解进行配置;最后,当查询结果指示缓存命中目标数据时,从缓存中获取目标数据并将目标数据发送给客户端。本申请实施例中通过使用缓存注解对缓存进行配置时实现了缓存逻辑与业务逻辑的解耦,改善了系统的可扩展性。除此之外,使用缓存注解对缓存进行配置时无需了解缓存配置的底层代码,大大降低了缓存配置的难度,提高了缓存配置的效率。
本文档来自技高网...【技术保护点】
1.一种数据查询方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述数据标识为注解,根据所述数据标识在缓存中对所述目标数据进行查询并得到查询结果,具体包括:
3.根据权利要求1所述的方法,其特征在于,所述查询结果指示所述缓存未命中所述目标数据时,所述方法还包括:
4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
5.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
7.一种数据查询装置,其特征在于,所述装置包括:第一获取模块、查询模块和第二获取模块;
8.根据权利要求7所述的装置,其特征在于,所述查询模块,具体用于:
9.一种计算机设备,其特征在于,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-6任一项所述的数据查询方法。
10.一种计算机可读存储介质,其特征在
...【技术特征摘要】
1.一种数据查询方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述数据标识为注解,根据所述数据标识在缓存中对所述目标数据进行查询并得到查询结果,具体包括:
3.根据权利要求1所述的方法,其特征在于,所述查询结果指示所述缓存未命中所述目标数据时,所述方法还包括:
4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
5.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
【专利技术属性】
技术研发人员:杨坤,
申请(专利权)人:北京商银微芯科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。