缓存防穿透方法、装置、电子设备及存储介质与流程

文档序号:39703407发布日期:2024-10-22 12:47阅读:7来源:国知局
缓存防穿透方法、装置、电子设备及存储介质与流程

本公开涉及计算机,尤其涉及缓存防穿透方法、装置、电子设备及存储介质。


背景技术:

1、随着物联网的快速发展,各种用于实现设备之间、设备与上位机远程交互控制的云平台现已广泛应用。而为了提升性能,一般会在存储层和客户端之间添加一个缓存层。当客户端向后端发送请求的时候,可以先在缓存层查询,如果缓存层中存储有相应的数据,会直接返回,否则再去存储层查询,这样可以减轻存储层的压力。

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、设备标识获取模块,用于通过所述目标中间件获取所述设备标识,并将所述设备标识添加到所述布隆过滤器。

37、可选地,所述装置还包括:

38、查询结果获取模块,用于在所述缓存中存在与所述查询请求对应的查询结果时,获取所述查询结果,并将所述查询结果返回。

39、可选地,所述装置还包括:

40、数据库获取模块,用于在所述布隆过滤器存储有所述目标设备的设备信息时,获取所述设备信息对应的目标数据库;

41、查询结果获得模块,用于基于所述目标数据库获得所述设备标识对应的查询结果。

42、可选地,所述装置还包括:

43、查询处理模块,用于在所述布隆过滤器未存储有所述目标设备的设备信息时,停止通过所述目标数据库查询所述设备标识对应的查询结果。

44、根据本公开的第三方面,提供了一种缓存防穿透系统,所述系统包括:redis客户端、目标组件、中间件、布隆过滤器和数据库;

45、所述redis客户端,用于将创建的目标设备对应的设备信息写入所述数据库;

46、所述数据库,用于存储所述目标设备的设备信息,并更新日志;

47、所述目标组件,用于监听所述目标数据库的日志变更状态,并在所述日志变更状态发生变更时,获取变更后的日志,以及向所述中间件发送所述变更后的日志;

48、所述中间件,用于接收所述变更后的日志,并获取所述变更后的日志中的设备标识,以及向所述布隆过滤器发送包含所述设备标识的消息;

49、所述redis客户端,还用于在接收到设备查询请求时,检测缓存中是否存在与所述查询请求对应的查询结果,并所述缓存中不存在与所述查询请求对应的查询结果时,在布隆过滤器中查询是否存储有对应设备的设备标识,在所述布隆过滤器未存储有对应设备的设备标识时,生成查询异常的查询结果。

50、根据本公开的第四方面,提供了一种电子设备。该电子设备包括:存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。

51、根据本公开的第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本公开的上述方法。

52、本公开实施例提供的缓存防穿透方法、装置、电子设备及存储介质,通过获取数据查询请求,检测缓存中是否存在与该查询请求对应的查询结果,并且在该缓存中不存在与查询请求对应的查询结果时,可以在布隆过滤器中查询是否存储有目标设备的设备标识。在布隆过滤器未存储有目标设备的设备标识时,生成查询异常的查询结果。这样在接收数据查询请求时,可以先在缓存中查询,如果存储中未查询到,可以在布隆过滤器中查询设备对应的设备标识是否存在,进而判断是否需要进一步到数据库中进行查询,可以有效防止数据防透传,提高数据查询效率的同时,还可以避免被恶意攻击的风险。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1