[發明專利]一種緩存壓縮方法及其系統在審
| 申請號: | 202310439558.9 | 申請日: | 2023-04-23 |
| 公開(公告)號: | CN116561022A | 公開(公告)日: | 2023-08-08 |
| 發明(設計)人: | 劉德建;陳叢亮;李佳 | 申請(專利權)人: | 福建天晴在線互動科技有限公司 |
| 主分類號: | G06F12/0871 | 分類號: | G06F12/0871 |
| 代理公司: | 福州旭辰知識產權代理事務所(普通合伙) 35233 | 代理人: | 程勇 |
| 地址: | 350212 福*** | 國省代碼: | 福建;35 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 緩存 壓縮 方法 及其 系統 | ||
一種緩存壓縮方法,所述方法步驟如下:步驟1:根據不同業務生成若干個初始布隆過濾器;步驟2:創建新的公共布隆過濾器和一個或多個子布隆過濾器,遍歷將步驟1中所有的初始布隆過濾器的位數組,將對應位置的鍵值對齊,然后按照策略提取至公共布隆過濾器中,差異部分分別存儲至子布隆過濾器中;步驟3:進行元素查詢,首先在子布隆過濾器中進行查詢元素,如果查詢的元素在子布隆過濾器中存在,則在元素所在的業務存儲中查詢,如果查詢的元素不存在,則在公共布隆過濾器中查詢,并返回結果,本發明提供的一種緩存壓縮方法,能夠節約布隆過濾器內容使用量,無需額外增加服務器就能解決緩存服務器內存不足的問題,成本低。
技術領域
本發明涉及存儲技術領域,特別是一種緩存壓縮方法及其系統。
背景技術
目前很多業務需要通過使用布隆過濾器來防止請求穿透到數據庫,但是,為了支持上億甚至十億的數據,并且減少誤判率,每個布隆過濾器都需要很大的空間存儲,從而導致緩存服務器內存不足。
目前是采用增加服務器的方式解決內存不足,成本較高。
發明內容
為克服上述布隆過濾器空間存儲量大而導致緩存服務器內存不足的問題,本發明的目的是提供一種緩存壓縮方法及其系統,能夠節約布隆過濾器內容使用量。
本發明采用以下方案實現:
一種緩存壓縮方法,所述方法步驟如下:
步驟1:根據不同業務生成若干個初始布隆過濾器;
步驟2:創建新的公共布隆過濾器和一個或多個子布隆過濾器,遍歷將步驟1中所有的初始布隆過濾器的位數組,將對應位置的鍵值對齊,然后按照策略提取至公共布隆過濾器中,差異部分分別存儲至子布隆過濾器中,所述策略為直接把第一個布隆過濾器內容當做公共布隆過濾器,或提取所有初始布隆過濾器的鍵值中相同部分當做公共布隆過濾器。
步驟3:進行元素查詢,首先在子布隆過濾器中進行查詢元素,如果查詢的元素在子布隆過濾器中存在,則在元素所在的業務存儲中查詢,如果查詢的元素不存在,則在公共布隆過濾器中查詢,并返回結果。
進一步的,步驟2進一步具體為:步驟21:創建一個新的布隆過濾器,即公共布隆過濾器,公共布隆過濾器的大小應與初始布隆過濾器相同,且公共布隆過濾器的所有位置的值都設為0;
步驟22:遍歷初始布隆過濾器的位數組,檢查對應位置的值,如果所有的初始布隆過濾器在同一位置的值均為1,則在公共布隆過濾器中將對應位置的值設為1,表示查詢元素在公共布隆過濾器中;
步驟23:創建一個或多個子布隆過濾器,用于存儲初始布隆過濾器中獨特的元素,子布隆過濾器的1初始大小為空;
步驟24:遍歷初始布隆過濾器的位數組,如果在其中一個初始布隆過濾器中某一位置的值為1,而在另外初始布隆過濾器中對應位置的值為0,則將子布隆過濾器在位置的位設為1,這樣,子布隆過濾器中的1表示元素只在至少一個初始布隆過濾器中存在。
進一步的,當需要檢查某個元素是否存在時,首先在子布隆過濾器中進行查詢元素,如果查詢到1表示元素存在,則需要在元素所在的業務存儲中查詢;如果子布隆過濾器查到0表示元素不存在,則在公共布隆過濾器中查詢,如果公共布隆過濾器查詢到0元素表示元素不存在,則返回結果不存在,如果查詢到1則說明元素存在,則需要在元素所在的業務存儲中查詢。
一種緩存壓縮系統,所述系統包括生成模塊、分類模塊、查詢模塊;
生成模塊用于根據不同業務生成若干個初始布隆過濾器;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于福建天晴在線互動科技有限公司,未經福建天晴在線互動科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202310439558.9/2.html,轉載請聲明來源鉆瓜專利網。





