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

bigkey检测方法、装置、设备及可读存储介质制造方法及图纸

技术编号:41227911 阅读:2 留言:0更新日期:2024-05-09 23:45
本申请公开了一种bigkey检测方法、装置、设备及可读存储介质,该方法可以利用JVM插件获取redis客户端向redis服务端发送的指令信息,其中,JVM插件基于AOP框架构建;利用JVM插件获取redis服务端发送至redis客户端的返回信息;基于此,本申请所使用的JVM插件能够适配各类redis客户端,在进行bigkey检测时,不会影响其他程序的运行,能够无入侵地实现bigkey检测;基于各个指令信息及各个返回信息,检测是否存在bigkey,能够减少bigkey检测过程中的数据分析量,减少服务器资源消耗的同时,减少检测耗时。可见,本申请可以无感知无入侵地进行bigkey检测,减少服务器资源消耗及检测耗时。

【技术实现步骤摘要】

本申请涉及redis,更具体地说,涉及一种bigkey检测方法、装置、设备及可读存储介质


技术介绍

1、redis是一个key-value存储系统。bigkey指的是redis中对应value值很大的key。在实际的操作过程中,bigkey耗时较长,容易阻塞redis,产生网络拥堵及性能下降的问题。因而,现有技术中采用redis自带的bigkey查询功能检测bigkey,但上述方式需要遍历redis服务器中的每一个key,导致服务器资源消耗较大,耗时较长且时效性较差。


技术实现思路

1、有鉴于此,本申请提供了一种bigkey检测方法、装置、设备及可读存储介质,用于解决现有技术检测bigkey资源消耗较大,耗时较长且时效性较差的缺点。

2、为了实现上述目的,现提出的方案如下:

3、一种bigkey检测方法,包括:

4、利用预设的jvm插件,获取redis客户端向redis服务端发送的各个指令信息,其中,所述jvm插件基于无入侵的面向切面编程aop框架构建;

5、利用所述jvm插件,获取所述redis服务端发送至所述redis客户端的各个返回信息;

6、基于各个指令信息及各个返回信息,检测是否存在bigkey。

7、可选的,在基于各个指令信息及各个返回信息,检测是否存在bigkey之后,还包括:

8、在确定存在bigkey时,确定产生所述bigkey的目标线程;

9、获取所述目标线程的调用栈信息;

10、基于所述调用栈信息,生成预警。

11、可选的,所述确定产生所述bigkey的目标线程,包括:

12、确定所述bigkey对应的目标指令信息及目标返回信息;

13、基于所述目标指令信息及目标返回信息,确定产生所述bigkey的目标线程。

14、可选的,所述利用预设的jvm插件,获取redis客户端向redis服务端发送的各个指令信息,包括:

15、确定第一接口,所述第一接口用于将所述redis客户端产生的指令发送至所述redis服务端;

16、利用jvm插件,监听所述第一接口,获取redis客户端向redis服务端发送的各个指令信息,每个指令信息中包含对应的key-value。

17、可选的,所述利用所述jvm插件,获取所述redis服务端发送至所述redis客户端的各个返回信息,包括:

18、确定第二接口,所述第二接口用于接收所述redis服务端返回至所述redis客户端的返回值;

19、利用所述jvm插件,监听所述第二接口,获取所述redis服务端发送至所述redis客户端的各个返回值,并确定每个返回值对应的线程标识,其中,每个返回值及其对应的线程标识组成每个返回信息,每个返回值表示对应key所映射的value。

20、可选的,所述基于各个指令信息及各个返回信息,检测是否存在bigkey,包括:

21、确定各个指令信息及各个返回信息间的对应关系;

22、基于存在对应关系的指令信息及返回信息,检测是否存在bigkey。

23、可选的,每个所述指令信息中包含有对应的key-value;每个返回信息包含有对应key所映射的value;

24、所述基于存在对应关系的指令信息及返回信息,检测是否存在bigkey,包括:

25、计算每个指令信息中value的目标长度,并计算每个返回信息对应的目标字节数;

26、针对每一指令信息,基于所述指令信息对应的目标长度及目标字节数,确定是否存在bigkey。

27、一种bigkey检测装置,包括:

28、指令信息获取模块,用于利用预设的jvm插件,获取redis客户端向redis服务端发送的各个指令信息,其中,所述jvm插件基于无入侵的面向切面编程aop框架构建;

29、返回信息获取模块,用于利用所述jvm插件,获取所述redis服务端发送至所述redis客户端的各个返回信息;

30、bigkey检测模块,用于基于各个指令信息及各个返回信息,检测是否存在bigkey。

31、一种bigkey检测设备,包括存储器和处理器;

32、所述存储器,用于存储程序;

33、所述处理器,用于执行所述程序,实现上述的bigkey检测方法的各个步骤。

34、一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现上述的bigkey检测方法的各个步骤。

35、从上述的技术方案可以看出,本申请提供的bigkey检测方法,该方法可以利用预设的jvm插件,获取redis客户端向redis服务端发送的各个指令信息,其中,所述jvm插件基于无入侵的面向切面编程aop框架构建;利用所述jvm插件,获取所述redis服务端发送至所述redis客户端的各个返回信息;基于此,本申请所使用的jvm插件能够适配各类redis客户端,在进行bigkey检测时,不会影响其他程序的运行,能够无入侵地实现bigkey检测;同时,本申请通过jvm插件无入侵地、无感知地获取各个指令信息及各个返回信息,并基于各个指令信息及各个返回信息,检测是否存在bigkey,能够减少bigkey检测过程中的数据分析量,减少服务器资源消耗的同时,减少检测耗时,提高bigkey的时效性。可见,本申请可以无感知无入侵地进行bigkey检测的同时,还可以进一步减少服务器资源消耗的同时,减少检测耗时,提高检测bigkey的时效性。

本文档来自技高网...

【技术保护点】

1.一种bigkey检测方法,其特征在于,包括:

2.根据权利要求1所述的bigkey检测方法,其特征在于,在基于各个指令信息及各个返回信息,检测是否存在bigkey之后,还包括:

3.根据权利要求2所述的bigkey检测方法,其特征在于,所述确定产生所述bigkey的目标线程,包括:

4.根据权利要求1所述的bigkey检测方法,其特征在于,所述利用预设的JVM插件,获取redis客户端向redis服务端发送的各个指令信息,包括:

5.根据权利要求1所述的bigkey检测方法,其特征在于,所述利用所述JVM插件,获取所述redis服务端发送至所述redis客户端的各个返回信息,包括:

6.根据权利要求1所述的bigkey检测方法,其特征在于,所述基于各个指令信息及各个返回信息,检测是否存在bigkey,包括:

7.根据权利要求6所述的bigkey检测方法,其特征在于,每个所述指令信息中包含有对应的key-value;每个返回信息包含有对应key所映射的value;

8.一种bigkey检测装置,其特征在于,包括:

9.一种bigkey检测设备,其特征在于,包括存储器和处理器;

10.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-7中任一项所述的bigkey检测方法的各个步骤。

...

【技术特征摘要】

1.一种bigkey检测方法,其特征在于,包括:

2.根据权利要求1所述的bigkey检测方法,其特征在于,在基于各个指令信息及各个返回信息,检测是否存在bigkey之后,还包括:

3.根据权利要求2所述的bigkey检测方法,其特征在于,所述确定产生所述bigkey的目标线程,包括:

4.根据权利要求1所述的bigkey检测方法,其特征在于,所述利用预设的jvm插件,获取redis客户端向redis服务端发送的各个指令信息,包括:

5.根据权利要求1所述的bigkey检测方法,其特征在于,所述利用所述jvm插件,获取所述redis服务端发送至所述redis客户端的各个返回...

【专利技术属性】
技术研发人员:王飞宇
申请(专利权)人:广州品唯软件有限公司
类型:发明
国别省市:

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

1