<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在文章開始之前,我先問大家一個問題:當我們使用指令:expire key second
給一個key設定過期時間,過期時間一到,這個key對應的過期資料
真的被伺服器立即刪除了嗎?答案是並不會立即刪除。知道了這個答案,就來看看Redis中如何處理過期的資料。
Redis是一種記憶體級資料庫,所有資料均存放在記憶體中,記憶體中的資料可以通過TTL指令獲取其狀態,有三種狀態:
指令結果 | 狀態 |
---|---|
XX | 具有時效性的資料 |
-1 | 永久有效的資料 |
-2 | 已經過期的資料 或 被刪除的資料 或 未定義的資料 |
當我們用指令設定過期資料後,資料對應的地址會放在expires空間中,儲存方式是雜湊,儲存的value是過期時間。
資料刪除策略目標:
在記憶體佔用與CPU佔用之間尋找一種平衡,顧此失彼都會造成整體redis效能的下降,甚至引發伺服器宕機或記憶體洩露
expireIfNeeded()
函數來判斷該資料是否過期: 如果未過期,返回資料,發現已過期,刪除,返回不存在流程分析:
serverCron()
方法,該方法用來檢測伺服器serverCron()
方法又會呼叫databasesCron()
方法,該方法是用來遍歷資料庫的,redis預設有16個資料庫,從第一個資料庫開始databasesCron()
方法又會呼叫activeExpireCycle()
方法,該方法會對每一個expires[*]
逐一進行檢測,每次執行250ms/server.hz;對某個expires[*]
檢測時,隨機挑選W個key檢測expires[*]
,0-15迴圈。其中W取值=ACTIVE_EXPIRE_CYCLE_LOOKUPS_PER_LOOP屬性值總結:
週期性輪詢redis庫中的時效性資料,採用隨機抽取的策略,利用過期資料佔比的方式控制刪除頻度定時刪除 | 節約記憶體,無佔用 | 不分時段佔用CPU資源,頻度高 | 拿時間換空間 |
---|---|---|---|
惰性刪除 | 記憶體佔用嚴重 | 延時執行,CPU利用率高 | 拿空間換時間 |
定期刪除 | 記憶體定期隨機清理 | 每秒花費固定的CPU資源維護記憶體 | 隨機抽查,重點抽查 |
當新資料進入redis時,如果記憶體不足怎麼辦?Redis使用記憶體儲存資料,在執行每一個命令前,會呼叫freeMemoryIfNeeded()
檢測記憶體是否充足。如果記憶體不滿足新加入資料的最低儲存要求,redis要臨時刪除一些資料為當前指令清理儲存空間。清理資料的策略稱為逐出演演算法。
注意:逐出資料的過程不是100%能夠清理出足夠的可使用的記憶體空間,如果不成功則反覆執行。當對所有資料嘗試完畢後,如果不能達到記憶體清理的要求,將出現錯誤資訊。
檢測易失資料(可能會過期的資料集server.db[i].expires
)
volatile-lru | 挑選最近最少使用的資料淘汰 |
---|---|
volatile-lfu | 挑選最近使用次數最少的資料淘汰 |
volatile-ttl | 挑選將要過期的資料淘汰 |
volatile-random | 任意選擇資料淘汰 |
檢測全庫資料(所有資料集server.db[i].dict
)
allkeys-lru | 挑選最近最少使用的資料淘汰 |
---|---|
allkeys-lfu | 挑選最近使用次數最少的資料淘汰 |
allkeys-random | 任意選擇資料淘汰 |
放棄資料驅逐:
no-enviction | 禁止驅逐資料(redis4.0中預設策略) |
---|
到此這篇關於Redis刪除策略的三種方法及逐出演演算法的文章就介紹到這了,更多相關Redis刪除策略內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45