[發(fā)明專利]用于清空過期緩存的方法和裝置有效
| 申請?zhí)枺?/td> | 201710402941.1 | 申請日: | 2017-06-01 |
| 公開(公告)號: | CN108984431B | 公開(公告)日: | 2021-04-30 |
| 發(fā)明(設(shè)計)人: | 陳青宇 | 申請(專利權(quán))人: | 北京京東尚科信息技術(shù)有限公司;北京京東世紀貿(mào)易有限公司 |
| 主分類號: | G06F12/0891 | 分類號: | G06F12/0891 |
| 代理公司: | 中原信達知識產(chǎn)權(quán)代理有限責任公司 11219 | 代理人: | 張一軍;姜勁 |
| 地址: | 100195 北京市海淀區(qū)杏石口路6*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 用于 過期 緩存 方法 裝置 | ||
本發(fā)明提供一種用于清空過期緩存的方法、裝置、電子設(shè)備和可讀存儲介質(zhì)。該方法包括:配置指示桶的大小的桶間距值;確定是否存在需要緩存的數(shù)據(jù);在確定存在需要緩存的數(shù)據(jù)時,根據(jù)所述桶間距值和需要緩存的數(shù)據(jù)的過期時間將與需要緩存的數(shù)據(jù)相對應(yīng)的鍵劃分到多個與桶相對應(yīng)的節(jié)點中的一個節(jié)點處;以及以所述桶間距值為間隔定時地刪除劃分到所述節(jié)點中的過期節(jié)點的所有鍵。
技術(shù)領(lǐng)域
本發(fā)明涉及計算機應(yīng)用領(lǐng)域,更具體地涉及一種用于清空過期緩存的方法、裝置、電子設(shè)備和可讀存儲介質(zhì)。
背景技術(shù)
隨著web應(yīng)用的發(fā)展,頻繁的讀寫操作對于存儲數(shù)據(jù)的關(guān)系數(shù)據(jù)庫服務(wù)器是無法承受的。為了應(yīng)對web應(yīng)用的頻繁的讀寫操作,許多web服務(wù)器將數(shù)據(jù)從關(guān)系數(shù)據(jù)庫移到非關(guān)系數(shù)據(jù)庫(NOSQL)上。
隨著人們對WEB服務(wù)器的請求頻率的爆發(fā)增長,WEB服務(wù)器請求NOSQL服務(wù)器有時也會出現(xiàn)時間上的瓶頸,這在OLAP類型的應(yīng)用尤其明顯。而且,每臺WEB服務(wù)器對緩存的要求不同,導(dǎo)致NOSQL服務(wù)器可能有很多冗余數(shù)據(jù),造成浪費效率不高。
在這種情況下,選擇在WEB應(yīng)用的內(nèi)存中建立緩存不失為明智之舉,但是這需要維護緩存的數(shù)據(jù)的過期時間,否則會導(dǎo)致明顯的內(nèi)存泄露。
在現(xiàn)有技術(shù)中,通常采用以下來處理緩存:1)單獨開啟一個線程來輪詢各緩存主鍵(key)的過期時間,一旦過期時間小于或等于當前時間,則將該鍵的緩存清空。然而,如果緩存的鍵過多,每次輪詢會消耗大量的CPU時間;如果針對每個鍵開啟一個定時器,則將會產(chǎn)生大量定時器,從而降低性能。2)將緩存置于Java虛擬機(JVM)的永久代中。在該情況中,可視為內(nèi)存泄露,并且在機器IO高時,需要頻繁地將頁緩存切到硬盤中,甚至造成機器空轉(zhuǎn)假死,失去了緩存的意義。
因此,需要提供一種能夠高效地清空過期緩存的方法、裝置、電子設(shè)備和可讀存儲介質(zhì)。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明實施例提供一種用于清空過期緩存的方法、裝置、電子設(shè)備和可讀存儲介質(zhì),其使用桶回收,通過減少清理的次數(shù)來提高清理效率,降低遍歷所有緩存鍵給服務(wù)器帶來的壓力。
為實現(xiàn)上述目的,根據(jù)本發(fā)明實施例的一個方面,提供了一種用于清空過期緩存的方法。
根據(jù)本發(fā)明實施例的一種用于清空過期緩存的方法包括:配置指示桶的大小的桶間距值;確定是否存在需要緩存的數(shù)據(jù);在確定存在需要緩存的數(shù)據(jù)時,根據(jù)所述桶間距值和需要緩存的數(shù)據(jù)的過期時間將與需要緩存的數(shù)據(jù)相對應(yīng)的鍵劃分到多個與桶相對應(yīng)的節(jié)點中的一個節(jié)點處;以及以所述桶間距值為間隔定時地刪除劃分到所述節(jié)點中的過期節(jié)點的所有鍵。
可選地,當確定存在需要緩存的數(shù)據(jù)時,確定緩存策略。
可選地,當確定所述緩存策略是桶回收模式時,執(zhí)行所述根據(jù)所述桶間距值和需要緩存的數(shù)據(jù)的過期時間將與需要緩存的數(shù)據(jù)相對應(yīng)的鍵劃分到所述節(jié)點中的一個節(jié)點處的步驟。
可選地,當確定所述緩存策略是普通回收模式時,維護鍵與過期時間之間的映射,并且輪詢各鍵的過期時間,一旦鍵的過期時間小于或等于當前時間,則將該鍵的緩存清空,不執(zhí)行所述根據(jù)所述桶間距值和需要緩存的數(shù)據(jù)的過期時間將與需要緩存的數(shù)據(jù)相對應(yīng)的鍵劃分到所述節(jié)點中的一個節(jié)點處的步驟以及所述以所述桶間距值為間隔定時地刪除劃分到所述節(jié)點中的過期節(jié)點的所有鍵的步驟。
可選地,根據(jù)應(yīng)用對緩存過期時間要求是否嚴格以及應(yīng)用緩存的過期時間值的大小來配置桶間距值。
可選地,根據(jù)以下公式來確定一個鍵所劃分到的節(jié)點:
(floor(expireTime/interval)+1)*interval
其中,floor表示向下取整函數(shù),expireTime表示過期時間并且等于設(shè)置緩存的當前時間加上超時時間,以及interval表示所述桶間距值。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京京東尚科信息技術(shù)有限公司;北京京東世紀貿(mào)易有限公司,未經(jīng)北京京東尚科信息技術(shù)有限公司;北京京東世紀貿(mào)易有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710402941.1/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





