[发明专利]一种Redis内存队列中数据的获取方法及系统在审
申请号: | 201710772144.2 | 申请日: | 2017-08-31 |
公开(公告)号: | CN107590005A | 公开(公告)日: | 2018-01-16 |
发明(设计)人: | 姜益民;童浩;谢邵虎 | 申请(专利权)人: | 武汉光谷信息技术股份有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F9/46 |
代理公司: | 北京轻创知识产权代理有限公司11212 | 代理人: | 杨立,陈璐 |
地址: | 430206 湖北省武汉市东湖新技*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 redis 内存 队列 数据 获取 方法 系统 | ||
技术领域
本发明涉及Redis数据调度技术领域,特别涉及一种Redis内存队列中数据的获取方法及系统。
背景技术
Redis是一个基于BSD许可开源的内存数据库,它可用作缓存、消息代理,并支持通过Redis Cluster进行自动分区。通过Redis提供的消息代理机制,可以很方便的实现基于内存队列的速率控制。但是当内存队列数量持续增长,各个内存队列吞吐数据的速率不同,各内存队列处于繁忙、空闲状态不一,遍历Redis中的内存队列并从内存队列中获取数据会导致检查Redis内存队列中是否有数据的流量持续增加,导致需要进行业务数据处理的队列数据处理延迟成倍增加。
发明内容
本发明提供了一种Redis内存队列中数据的获取方法及系统,用以解决对Redis内存队列的空调度的问题,提升了Redis内存队列的整体吞吐能力。
本发明解决上述技术问题的技术方案如下:一种Redis内存队列中数据的获取方法,包括以下步骤:
步骤1、接收数据获取指令,所述数据获取指令包括Redis内存队列名称;
步骤2、根据所述数据获取指令,从所述Redis内存队列名称对应的内存队列中按照预设获取周期获取数据;
步骤3、当按照所述预设获取周期获取不到数据时,则进入休眠状态。
本发明的有益效果是:本发明是将Redis中的内存队列进行空闲、繁忙标记并对获取数据的时间周期进行设置(即当接收到数据获取指令时,就按照预设获取周期开始连续获取数据,此为内存队列的繁忙状态,当按照预设获取周期获取不到数据时,则自动进入休眠状态,此为空闲标记),在确保Redis中某一内存队列中的业务数据能够在规定时间内被处理的条件下,减少对该内存队列的空调度,避免无用的内存队列中是否有数据的检查操作,将获取数据的操作对象让给有数据且需要进行业务数据处理的Redis中的其他内存队列,在相同的硬件条件下提升了Redis的整体吞吐能力。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述预设获取周期为多个,所述步骤2包括:
步骤2.1、根据所述数据获取指令,按照第一预设获取周期连续从所述内存队列中获取数据;
步骤2.2、当按照所述第一预设获取周期获取不到数据时,则按照第二预设获取周期获取数据;
步骤2.3、当按照所述第二预设获取周期获取到数据时,则执行步骤2.1,否则,执行步骤3,
其中,所述第一预设获取周期和所述第二预设获取周期分别为多个所述预设获取周期中不同的预设获取周期;
则所述步骤3包括:
当按照所述第二预设获取周期获取不到数据时,则进入休眠状态。
本发明的进一步有益效果是:对获取数据的时间周期进行两级设置(即设置两个周期用于获取数据),当按照第一个周期获取不到数据时,则按照第二个周期获取数据,当按照第二个周期获取到数据时,则再以第一个周期获取数据,当按照第二个周期获取不到数据时,说明内存队列中没有数据,则进入休眠状态,避免了按照第一个周期和第二个周期对内存队列的连续多次空调度、浪费调度流量、降低Redis的整体吞吐能力等的问题。另外,设置两个周期,有利于对内存队列中的数据进行准确、彻底地调度,避免按照一个周期进行连续调度时因调度周期过短或调度周期单一而导致调度不到数据并造成对内存队列无数据的误判的问题。
进一步,所述第一预设获取周期的时长短于所述第二预设获取周期的时长。
本发明的进一步有益效果:先按照一个较短的获取周期从内存队列中连续获取数据,当按照这个较短的获取周期获取不到数据时,再拉长获取数据的等待周期,按照第二个获取周期去内存队列中获取数据,有利于对内存队列中的数据进行准确、彻底地获取,避免按照一个周期进行连续调度时因调度周期过短而导致调度不到数据并造成对内存队列无数据的误判的问题。
进一步,所述步骤2.2具体包括:
当按照所述第一预设获取周期连续m次获取不到数据时,则按照所述第二预设获取周期获取数据;
所述步骤3具体包括:
当按照所述第二预设获取周期连续n次获取不到数据时,则进入休眠状态;
其中,m和n分别为正整数。
本发明的进一步有益效果是:设置连续获取不到数据的次数限制,进一步避免按照第一个周期和第二个周期对内存队列的连续多次空调度、浪费调度流量、降低Redis的整体吞吐能力等的问题。
进一步,所述方法还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉光谷信息技术股份有限公司,未经武汉光谷信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710772144.2/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置