本技术涉及物流,具体涉及一种基于redis的性能调整方法、装置、电子设备和介质(计算机存储介质)。
背景技术:
1、随着互联网的普及,越来越多的用户开始在网上购物、寄快递、看新闻等,系统访问的并发量成指数级上涨,这对缓存系统的查询也提出了更高的要求;现有技术通常采用redis(remote dictionary server,远程字典服务,是一个高性能的key-value数据库)作为缓存系统。
2、redis作为高性能缓存服务,查询redis数据库可用操作方式有两种方式:非管道式、管道式操作;其中,非管道式查询redis数据库,在处理高并发时查询效率较低;管道式查询redis数据库,在处理高并发时查询效率提高,但是需要等待整个管道中的所有查询操作均完成,然后将全部结果中逐一匹配到管道,才最终返回全部结果,也需要耗费一定时间。也就是说,虽然redis服务本身性能很高,单次请求redis的延迟可以忽略,但当请求的次数很多如每秒有几万次甚至几十万次时,微小的网络延迟就会拖慢整体,导致redis整体性能降低。
技术实现思路
1、本技术提供一种基于redis的性能调整方法、装置、设备和计算机存储介质,旨在解决现有的redis请求较多时微小延迟就会拖慢整体,导致redis整体性能降低的技术问题。
2、一方面,本技术提供一种基于redis的性能调整方法,所述基于redis的性能调整方法包括以下步骤:
3、将redis查询请求分配至预设的查询队列;
4、若所述查询队列接收到过期通知,则将所述查询队列中的各所述查询请求组装成通讯管道并向所述redis提交;
5、接收所述redis基于所述通讯管道反馈的查询结果,并根据所述查询结果关联的响应时间,确定所述redis的系统性能是否符合要求;
6、若所述redis的系统性能不符合要求,则调整所述过期通知对应的超时时间和/或所述查询队列的队列信息,直至所述redis的系统性能符合要求。
7、在本技术一些实施方案中,所述若所述查询队列接收到过期通知,则将所述查询队列中的各所述查询请求组装成通讯管道并向所述redis提交之前,所述方法包括:
8、控制预设的时间轮向所述查询队列分配超时时间,并控制所述查询队列向所述时间轮申请过期通知管道;
9、若存在至少两个所述查询队列申请过期通知管道,则获取超过所述超时时间的所述查询队列的队列标识;
10、通过所述过期通知管道发送过期通知至所述队列标识对应的查询队列。
11、在本技术一些实施方案中,所述接收所述redis基于所述通讯管道反馈的查询结果,并根据所述查询结果关联的响应时间,确定所述redis的系统性能是否符合要求,包括:
12、接收所述redis基于所述通讯管道反馈的查询结果,获取所述查询结果关联的响应时间;
13、统计各所述查询结果关联的响应时间,计算所述redis的平均延时;
14、若所述平均延时超过预设时延阈值,则判定所述redis的系统性能不符合要求。
15、在本技术一些实施方案中,所述若所述redis的系统性能不符合要求,则调整所述过期通知对应的超时时间和/或所述查询队列的队列信息,直至所述redis的系统性能符合要求,包括:
16、若所述redis的系统性能不符合要求,则调整所述过期通知对应的超时时间、所述查询队列的队列数量或所述查询队列的队列长度;
17、获取调整后的查询队列对应新的查询结果,根据所述新的查询结果关联的响应时间,确定新的平均延时;
18、直至所述新的平均延时不超过预设时延阈值,则确定所述redis的系统性能符合要求。
19、在本技术一些实施方案中,所述直至所述新的平均延时不超过预设时延阈值,则确定所述redis的系统性能符合要求,包括:
20、若所述新的平均延时不超过预设时延阈值,则获取所述redis的cpu占用率和内存占用率;
21、若所述redis的cpu占用率超过预设占用率阈值,或所述redis的内存占用率超过预设占用率阈值,则反向调整所述过期通知对应的超时时间、所述查询队列的队列数量或所述查询队列的队列长度;
22、若所述redis的cpu占用率和内存占用率都未超过预设占用率阈值,则确定所述redis的系统性能符合要求。
23、在本技术一些实施方案中,所述将redis查询请求分配至预设的查询队列,包括:
24、通过查询服务模块解析查询请求,提取对redis的查询请求;
25、获取对redis的所述查询请求的请求数量,以及预设的查询队列的队列数量,以及各所述查询队列的队列长度;
26、根据所述队列数量和所述队列长度,将所述请求数量的所述查询请求分配至各所述查询队列。
27、在本技术一些实施方案中,所述将redis查询请求分配至预设的查询队列之前,所述方法包括:
28、通过预设的查询服务模块拉取redis查询请求的平均延时;
29、接收用户设置的预期延时,根据所述预期延时和所述平均延时,配置redis对应查询队列的队列数量和队列长度;
30、将所述平均延时设置为过期通知初始的超时时间,将所述队列数量和所述队列长度设置为所述查询队列初始的队列信息。
31、另一方面,本技术提供一种基于redis的性能调整装置,所述基于redis的性能调整装置包括:
32、分配模块,用于将redis查询请求分配至预设的查询队列;
33、组装模块,用于若所述查询队列接收到过期通知,则将所述查询队列中的各所述查询请求组装成通讯管道并向所述redis提交;
34、确定模块,用于接收所述redis基于所述通讯管道反馈的查询结果,并根据所述查询结果关联的响应时间,确定所述redis的系统性能是否符合要求;
35、调整模块,用于若所述redis的系统性能不符合要求,则调整所述过期通知对应的超时时间和/或所述查询队列的队列信息,直至所述redis的系统性能符合要求。
36、另一方面,本技术还提供一种电子设备,所述电子设备包括:
37、一个或多个处理器;
38、存储器;以及
39、一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行以实现所述的基于redis的性能调整方法中的步骤。
40、另一方面,本技术还提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行所述的基于redis的性能调整方法中的步骤。
41、本技术的技术方案中基于redis的性能调整方法、装置、电子设备和介质;基于redis的性能调整方法包括:将redis查询请求分配至预设的查询队列;若所述查询队列接收到过期通知,则将所述查询队列中的各所述查询请求组装成通讯管道并向所述redis提交;接收所述redis基于所述通讯管道反馈的查询结果,并根据所述查询结果关联的响应时间,确定所述redis的系统性能是否符合要求;若所述redis的系统性能不符合要求,则调整所述过期通知对应的超时时间和/或所述查询队列的队列信息,直至所述redis的系统性能符合要求;本技术实施例中根据查询请求关联的响应时间,可以得到redis的系统是否出现响应延迟,然后确定redis的系统性能是否符合要求;若redis的系统性能不符合要求,则对redis的系统对应的超时时间和/或查询队列的队列信息进行动态调整,使得redis的系统性能符合要求,这样不需要增加redis系统的硬件结构,也不需要人工干预,通过简单的参数动态调整,就可以提高redis的系统的查询性能。