System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及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客户端的各个返回...
【专利技术属性】
技术研发人员:王飞宇,
申请(专利权)人:广州品唯软件有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。