摘要:定時(shí)刪除在設(shè)置鍵的過期時(shí)間的同時(shí),創(chuàng)建一個,讓定時(shí)器在鍵的過期時(shí)間到達(dá)時(shí),立即執(zhí)行對鍵的刪除操作。主動刪除對內(nèi)存友好,但是對時(shí)間不友好,有較多過期鍵的而情況下,刪除過期鍵會占用相當(dāng)一部分時(shí)間。
1.定時(shí)刪除:在設(shè)置鍵的過期時(shí)間的同時(shí),創(chuàng)建一個timer,讓定時(shí)器在鍵的過期時(shí)間到達(dá)時(shí),立即執(zhí)行對鍵的刪除操作。(主動刪除)
對內(nèi)存友好,但是對cpu時(shí)間不友好,有較多過期鍵的而情況下,刪除過期鍵會占用相當(dāng)一部分cpu時(shí)間。
2.惰性刪除:放任過期鍵不管,但是每次從鍵空間中獲取鍵時(shí),都檢查取到的鍵是否過去,如果過期就刪除,如果沒過期就返回該鍵。(被動刪除)
對cpu時(shí)間友好,程序只會在取出鍵的時(shí)候才會對鍵進(jìn)行過期檢查,這不會在刪除其他無關(guān)過期鍵上花費(fèi)任何cpu時(shí)間,但是如果一個鍵已經(jīng)過期,而這個鍵又保留在數(shù)據(jù)庫中,那么只要這個過期鍵不被刪除,他所占用的內(nèi)存就不會釋放,對內(nèi)存不友好。
3.定期刪除:每隔一段時(shí)間就對數(shù)據(jù)庫進(jìn)行一次檢查,刪除里面的過期鍵。(主動刪除)
采用對內(nèi)存和cpu時(shí)間折中的方法,每個一段時(shí)間執(zhí)行一次刪除過期鍵操作,并通過限制操作執(zhí)行的時(shí)長和頻率來減少對cpu時(shí)間的影響。難點(diǎn)在于,選擇一個好的策略來設(shè)置刪除操作的時(shí)長和執(zhí)行頻率。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/77688.html
摘要:對于數(shù)據(jù)結(jié)構(gòu)哈希表我們在上一篇也已經(jīng)詳細(xì)說了。鍵空間示意圖的數(shù)據(jù)庫就是使用字典哈希表來作為底層實(shí)現(xiàn)的,對數(shù)據(jù)庫的增刪改查都是構(gòu)建在字典哈希表的操作之上的。 前言 只有光頭才能變強(qiáng) 今天繼續(xù)來學(xué)習(xí)Redis,上一篇從零單排學(xué)Redis【青銅】已經(jīng)將Redis常用的數(shù)據(jù)結(jié)構(gòu)過了一遍了。如果還沒看的同學(xué)可以先去看一遍再回來~ 這篇主要講的內(nèi)容有: Redis服務(wù)器的數(shù)據(jù)庫 Redis對過期...
閱讀 2879·2021-10-14 09:43
閱讀 1673·2021-09-29 09:34
閱讀 1757·2021-07-28 00:16
閱讀 2972·2019-08-30 15:53
閱讀 2917·2019-08-30 13:59
閱讀 2972·2019-08-30 13:57
閱讀 1102·2019-08-26 13:38
閱讀 1906·2019-08-26 13:25