本发明涉及数据库,尤其是涉及一种检测redis协议兼容程度的方法和系统。
背景技术:
1、redis是开源的key-value存储系统,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。在实际的使用过程中由于性能方面的考虑,比如内存占用太大、集群实现等因素,会有定制版本和兼容redis协议的类redis组件(如pika)产生,这种情况下与原redis在功能方面就有差异了(尤其是与较新版本的redis相比),需要一种快速检测类redis组件功能兼容程度的方法和工具。
技术实现思路
1、有鉴于此,本发明提供一种检测redis协议兼容程度的方法和系统,通过自动执行redis协议的相关操作指令,对执行命令的结果进行解析,识别出哪些指令是不支持的,把最终指令识别结果进行统计并进行可视化输出。
2、第一方面,本发明提供一种检测redis协议兼容程度的方法,所述方法包括以下步骤:
3、s100,server遍历测试单元文件列表,选择空闲的client发送测试单元文件以执行测试该文件指令,所述执行测试能够多进程并行执行;
4、s200,空闲client接收到执行测试指令后向redis服务发送控制指令,并获取每条指令的执行结果;
5、s300,client对指令执行结果进行解析,分为执行成功和执行失败,执行失败的获取失败原因,把解析结果发送给server;
6、s400,server接收到client的信息进行整合处理;将执行完一个测试单元文件后的client标记为空闲;
7、s500,所有测试单元文件执行完后,server把测试结果进行统计,并把结果格式化输出到表格文件。
8、第二方面,本发明提供一种检测redis协议兼容程度的系统,所述系统包含server模块、client模块、类redis服务模块,结果文档模块;
9、所述server模块,用于启动测试服务server进程,以及遍历测试单元文件列表,选择空闲的client发送执行测试该文件指令。
10、所述client模块,用于接收到执行测试指令后,读取文件内容,根据传入参数与对应的redis服务进行连接,以测试单元为单位向redis服务发送控制指令,并获取每条指令的执行结果。
11、所述类redis服务模块,用于执行从client模块接收的控制指令,并向所述client模块反馈控制指令操作结果。
12、第三方面,本发明提供一种计算机存储介质,所述存储介质中存储有至少一可执行程序,所述可执行程序使处理器执行所述的检测redis协议兼容程度的方法对应的操作。
13、本发明采用client-server结构,多进程并行方式,对按功能特性创建测试单元文件进行读取并执行操作指令,达到灵活可扩展并快速检测类redis组件特性支持情况,相对现有技术而言,所具有的优点和效果如下:
14、1.能灵活的对已运行的redis服务进行测试,也可以每个client临时创建一个redis服务进行测试。
15、2.可以根据机器性能配置多进程并发测试。
16、3.新增测试特性扩展方便。
17、4.针对大量测试特性,多进程模式不会因为个别特性测试异常而造成异常退出。
18、上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
1.一种检测redis协议兼容程度的方法,其特征在于,所述方法包括以下步骤:
2.根据权利要求1所述的方法,其特征在于,所述步骤s100之前,还包括以下步骤:
3.根据权利要求2所述的方法,其特征在于,所述创建测试单元文件,包括,将每个待测试特性对应一个独立的文件,文件名以特性名命名,每个测试单元对应一组执行该特性的操作指令。
4.根据权利要求2所述的方法,其特征在于,所述配置参数,包括redis组件服务地址、测试客户端client进程数量;所述redis组件服务,包括外部已存在的运行中的服务、临时创建的服务。
5.根据权利要求2所述的方法,其特征在于,所述启动测试服务server进程,进一步包括,
6.一种检测redis协议兼容程度的系统,所述系统包含server模块、client模块、类redis服务模块,结果文档模块;
7.根据权利要求6所述的系统,其特征在于,所述启动测试服务server进程,进一步包括,
8.根据权利要求6所述的系统,其特征在于,所述client模块,还用对指令执行结果进行解析,分为执行成功和执行失败,执行失败的获取失败原因,把解析结果发送给server。
9.根据权利要求6所述的系统,其特征在于,所述server模块,还用于对接收到client的信息进行整合处理,指令执行成功和失败各自归类存储到对应结果列表,client执行完一个测试单元文件后标记为空闲;以及,
10.一种计算机存储介质,所述存储介质中存储有至少一可执行程序,所述可执行程序使处理器执行如权利要求1-5任一项所述的检测redis协议兼容程度的方法对应的操作。