[發明專利]一種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.szxzyx.cn/pat/books/201710772144.2/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





