日本三级片在线观看视频_西西大胆午夜人体视频无码_少妇无码一区二区_亚洲天堂超碰_极品少妇被猛的白浆直流_91精品云霸高清中文字幕_草草五月天伊人_久久少妇无码专区_欧美激欧美啪啪5老太_日韩在线在线成人

Redis 過期鍵刪除策略

2019-02-26 18:30:19 15479

Redis 中數(shù)據(jù)庫鍵的過期時(shí)間都保存在過期字典中,當(dāng)一個(gè)鍵過期了,Redis 存在三種不同的刪除策略:定時(shí)刪除、惰性刪除和定期刪除

定時(shí)刪除

定義

在設(shè)置鍵的過期時(shí)間的同時(shí)創(chuàng)建一個(gè)計(jì)時(shí)器,讓定時(shí)器在鍵過期時(shí)間來臨時(shí),立即執(zhí)行對(duì)鍵的刪除操作。

定時(shí)刪除策略對(duì)內(nèi)存是最友好的:通過使用定時(shí)器,定時(shí)刪除策略可以保證過期鍵會(huì)盡快被刪除,并且釋放過期鍵所占用的內(nèi)存。

但是另一方面,它對(duì) CPU 時(shí)間是嘴不友好的:在過期鍵比較多的情況下,刪除過期鍵這一行為可能會(huì)占用相當(dāng)一部分的 CPU 時(shí)間,在內(nèi)存不緊張但是 CPU 時(shí)間緊張的情況下,將 CPU 時(shí)間用在刪除和當(dāng)前任務(wù)無關(guān)的過期鍵上,無疑會(huì)對(duì)服務(wù)器的響應(yīng)時(shí)間和吞吐量造成影響。

惰性刪除

定義

放任過期鍵不管,但是每次從鍵空間中獲取鍵時(shí)都檢查取得的鍵是否過期,如果過期的話,就刪除該鍵;如果沒有過期則返回該鍵。

惰性刪除策略對(duì) CPU 時(shí)間來說是最友好的,但是它對(duì)內(nèi)存是最不友好的:如果一個(gè)鍵已經(jīng)過期,而這個(gè)鍵又恰好沒有被訪問到的話,那么它可能永遠(yuǎn)都不回被刪除,甚至可以將這種情況視為一種內(nèi)存泄漏 —— 無用的垃圾數(shù)據(jù)占用了大量的內(nèi)存,而服務(wù)器卻不能主動(dòng)去釋放它們,這對(duì)于運(yùn)行狀態(tài)非常依賴于內(nèi)存的 Redis 服務(wù)器來說,并不是一個(gè)好消息。

定期刪除

定義

每隔一段時(shí)間,程序都會(huì)對(duì)數(shù)據(jù)庫進(jìn)行一次檢查,刪除里面的過期鍵。至于要?jiǎng)h除多少過期鍵,以及要檢查多少個(gè)數(shù)據(jù)庫,則由算法決定。

從上面對(duì)定時(shí)刪除和惰性刪除的討論來看,這兩種刪除方式在單一使用時(shí)都有非常明顯的缺陷,定期刪除策略可以看作是兩種策略的一種整合和折中:

  • 定期刪除策略每隔一段時(shí)間執(zhí)行一次刪除過期鍵操作,并通過限制刪除操作執(zhí)行的時(shí)長和頻率來減少刪除操作對(duì) CPU 時(shí)間的影響。

  • 通過定期刪除過期鍵,定期刪除策略有效減少了因?yàn)檫^期鍵而帶來的內(nèi)存浪費(fèi)

但是定期刪除策略的難點(diǎn)是確定刪除操作執(zhí)行的時(shí)長和頻率:

  • 如果刪除操作執(zhí)行太過頻繁,或者執(zhí)行的時(shí)間太長,定期刪除策略就會(huì)退化成定時(shí)刪除策略,以至于 CPU 時(shí)間過多的消耗在刪除過期鍵上

  • 如果刪除操作執(zhí)行的太少,或者執(zhí)行的時(shí)間太短,定期刪除策略又會(huì)和惰性刪除策略一樣,出現(xiàn)浪費(fèi)內(nèi)存的情況


提交成功!非常感謝您的反饋,我們會(huì)繼續(xù)努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問題: