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