System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 数据查询方法、装置、存储介质、电子设备制造方法及图纸_技高网

数据查询方法、装置、存储介质、电子设备制造方法及图纸

技术编号:40099537 阅读:4 留言:0更新日期:2024-01-23 17:28
本申请公开了数据查询方法、装置、存储介质、电子设备。该方法包括:接收步骤,接收数据查询请求,数据查询请求用于查询目标数据并具有对应的标识号;更新步骤,当在电子设备的本地缓存中没有查询到目标数据时,更新本地缓存中的请求队列;确定步骤,根据标识号,确定向数据库获取目标数据或使所述数据查询请求等待处理,获取的目标数据被存入本地缓存;查询步骤,基于所述请求队列和所述标识号,对于等待处理的所述数据查询请求发出唤醒通知,以在所述本地缓存中查询所述目标数据。本发明专利技术可以有效地避免缓存击穿的风险。

【技术实现步骤摘要】

本公开涉及互联网,特别涉及一种数据查询方法、装置、存储介质、电子设备


技术介绍

1、在接收到对于某数据的访问请求时,为了提高响应效率,通常可以先到本地缓存中查询是否存在该数据。如果不存在,则到数据库查询数据,再把获取的数据放到缓存中,下次访问则命中缓存,直接返回;如果缓存过期或淘汰,则重新到数据库查询数据并放置到本地缓存中。

2、上述获取数据的方式,在一般情况下表现得很好,但在数据访问非常频繁的高频访问环境下,存在缓存击穿的风险。比如,若在本地缓存中的数据刚好需要刷新的时候,此时到达的大量的高频数据请求可能会落在数据库上,造成数据库压力瞬间飙升,即,缓存击穿,这对数据库的稳定性构成极大威胁。


技术实现思路

1、本申请实施例提供了一种数据查询方法、数据查询装置、存储介质、电子设备以及计算机程序产品。

2、第一方面,本申请实施例提供了一种数据查询方法用于电子设备,所述方法包括:

3、接收步骤,接收数据查询请求,所述数据查询请求用于查询目标数据并具有对应的标识号;

4、更新步骤,当在所述电子设备的本地缓存中没有查询到所述目标数据时,更新所述本地缓存中的请求队列;

5、确定步骤,根据所述标识号,确定向数据库获取所述目标数据或使所述数据查询请求等待处理,获取的所述目标数据被存入所述本地缓存;

6、查询步骤,基于所述请求队列和所述标识号,对于等待处理的所述数据查询请求发出唤醒通知,以在所述本地缓存中查询所述目标数据。p>

7、在上述第一方面的一种可能的实现中,所述数据查询请求是针对所述目标数据的多个并发查询请求中的一个请求。

8、在上述第一方面的一种可能的实现中,当根据所述标识号判断出所述数据查询请求是所述多个并发查询请求中的首次请求时,确定向所述数据库获取所述目标数据;当根据所述标识号判断出所述数据查询请求不是所述多个并发查询请求中的所述首次请求时,确定使所述数据查询请求等待处理。

9、在上述第一方面的一种可能的实现中,在所述数据查询请求被处理完成后,当判断出所述标识号与所述请求队列的值不一致时,对于下一个等待的所述数据查询请求发出所述唤醒通知。

10、在上述第一方面的一种可能的实现中,在所述数据查询请求被处理完成后,当判断出所述标识号与所述请求队列的值一致时,将所述请求队列的值重置为初始值。

11、在上述第一方面的一种可能的实现中,每个所述数据查询请求的所述标识号根据接收的顺序而依次递增。

12、在上述第一方面的一种可能的实现中,更新所述本地缓存中的请求队列是指使所述请求队列的值更新为与所述标识号一致。

13、在上述第一方面的一种可能的实现中,所述本地缓存采用key-value的存储形式,其中所述数据查询请求包含key,所述目标数据是与所述key对应的value。

14、在上述第一方面的一种可能的实现中,所述请求队列用于包含相同key的多个所述数据查询请求。

15、第二方面,本申请实施例提供了一种计算机程序产品,包括计算机可执行指令,其特征在于,所述指令被处理器执行以实施第一方面所述的数据查询方法。

16、第三方面,本申请实施例提供了一种计算机可读存储介质,其特征在于,所述存储介质上存储有指令,所述指令在计算机上执行时使所述计算机执行第一方面所述的数据查询方法。

17、第四方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器;一个或多个存储器;其中,所述一个或多个存储器存储有一个或多个程序,当所述一个或者多个程序被所述一个或多个处理器执行时,使得所述电子设备执行第一方面所述的数据查询方法。

18、第五方面,本申请实施例提供了一种数据查询装置,包括:接收单元,接收数据查询请求,所述数据查询请求用于查询目标数据并具有对应的标识号;更新单元,当在所述电子设备的本地缓存中没有查询到所述目标数据时,更新所述本地缓存中的请求队列;确定单元,根据所述标识号,确定向数据库获取所述目标数据或使所述数据查询请求等待处理,获取的所述目标数据被存入所述本地缓存;查询单元,基于所述请求队列和所述标识号,对于等待处理的所述数据查询请求发出唤醒通知,以在所述本地缓存中查询所述目标数据。可以理解的是,接收单元、更新单元、确定单元、查询单元可以通过电子设备中具有这些模块或单元功能的处理器来实现。

19、本专利技术中,在“首次访问”或“缓存过期/缓存淘汰”的情况下,虽然出现了针对同一目标数据的多个并发查询请求,但是多个并发查询请求被依序执行,即串行化执行,使得仅针对第一个并发查询请求会访问数据库,而对于后续执行其他的并发查询请求不会访问数据库,而是可以直接缓存命中。因此,可以有效地避免缓存击穿的风险。

20、进一步,本专利技术针对不同的key的缓存块设置了专用的请求队列的属性,而不是用于全局的唯一的请求队列,因此针对不同key的数据查询请求可以分别独立执行,没有执行依赖,不会影响对于不同key的并发访问性能。进一步,通过简单地设置请求队列的属性,不需要动态创建队列链表,因此内存开销极小。

本文档来自技高网...

【技术保护点】

1.一种数据查询方法,用于电子设备,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述数据查询请求是针对所述目标数据的多个并发查询请求中的一个请求。

3.根据权利要求2所述的方法,其特征在于,当根据所述标识号判断出所述数据查询请求是所述多个并发查询请求中的首次请求时,确定向所述数据库获取所述目标数据;当根据所述标识号判断出所述数据查询请求不是所述多个并发查询请求中的所述首次请求时,确定使所述数据查询请求等待处理。

4.根据权利要求3所述的方法,其特征在于,在所述数据查询请求被处理完成后,当判断出所述标识号与所述请求队列的值不一致时,对于下一个等待的所述数据查询请求发出所述唤醒通知。

5.根据权利要求3所述的方法,其特征在于,在所述数据查询请求被处理完成后,当判断出所述标识号与所述请求队列的值一致时,将所述请求队列的值重置为初始值。

6.根据权利要求1所述的方法,其特征在于,每个所述数据查询请求的所述标识号根据接收的顺序而依次递增。

7.根据权利要求6所述的方法,其特征在于,更新所述本地缓存中的请求队列是指使所述请求队列的值更新为与所述标识号一致。

8.根据权利要求1所述的方法,其特征在于,所述本地缓存采用key-value的存储形式,其中所述数据查询请求包含key,所述目标数据是与所述key对应的value。

9.根据权利要求8所述的方法,其特征在于,所述请求队列用于包含相同key的多个所述数据查询请求。

10.一种数据查询装置,其特征在于,所述装置包括:

11.一种计算机程序产品,包括计算机可执行指令,其特征在于,所述指令被处理器执行以实施权利要求1-9中任一项所述的数据查询方法。

12.一种计算机可读存储介质,其特征在于,所述存储介质上存储有指令,所述指令在计算机上执行时使所述计算机执行权利要求1至9中任一项所述的数据查询方法。

13.一种电子设备,其特征在于,包括:

...

【技术特征摘要】

1.一种数据查询方法,用于电子设备,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述数据查询请求是针对所述目标数据的多个并发查询请求中的一个请求。

3.根据权利要求2所述的方法,其特征在于,当根据所述标识号判断出所述数据查询请求是所述多个并发查询请求中的首次请求时,确定向所述数据库获取所述目标数据;当根据所述标识号判断出所述数据查询请求不是所述多个并发查询请求中的所述首次请求时,确定使所述数据查询请求等待处理。

4.根据权利要求3所述的方法,其特征在于,在所述数据查询请求被处理完成后,当判断出所述标识号与所述请求队列的值不一致时,对于下一个等待的所述数据查询请求发出所述唤醒通知。

5.根据权利要求3所述的方法,其特征在于,在所述数据查询请求被处理完成后,当判断出所述标识号与所述请求队列的值一致时,将所述请求队列的值重置为初始值。

6.根据权利要求1所述的方法,其特征在于,每个所述数据查询...

【专利技术属性】
技术研发人员:郑阳毛琦张迪卢亚德
申请(专利权)人:行吟信息科技上海有限公司
类型:发明
国别省市:

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

1