色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Redis的刪除策略和內存淘汰機制介紹

麥辣雞腿堡 ? 來源:程序員庫森 ? 作者:程序員庫森 ? 2023-10-09 11:06 ? 次閱讀

Redis過期鍵的刪除策略?

Redis的過期刪除策略就是:惰性刪除和定期刪除兩種策略配合使用。

惰性刪除:Redis的惰性刪除策略由db.c/expireIfNeeded函數實現,所有鍵讀寫命令執行之前都會調用 expireIfNeeded函數對其進行檢查,如果過期,則刪除該鍵,然后執行鍵不存在的操作;未過期則不作操作,繼續執行原有的命令。

定期刪除:由Redis.c/activeExpireCycle 函數實現,函數以一定的頻率運行,每次運行時,都從一定數量的數據庫中取出一定數量的隨機鍵進行檢查,并刪除其中的過期鍵。

附:刪除key常見的三種處理方式。

1、定時刪除

在設置某個key 的過期時間同時,我們創建一個定時器,讓定時器在該過期時間到來時,立即執行對其進行刪除的操作。

優點:定時刪除對內存是最友好的,能夠保存內存的key一旦過期就能立即從內存中刪除。

缺點:對CPU最不友好,在過期鍵比較多的時候,刪除過期鍵會占用一部分 CPU 時間,對服務器的響應時間和吞吐量造成影響。

2、惰性刪除

設置該key 過期時間后,我們不去管它,當需要該key時,我們在檢查其是否過期,如果過期,我們就刪掉它,反之返回該key。

優點:對 CPU友好,我們只會在使用該鍵時才會進行過期檢查,對于很多用不到的key不用浪費時間進行過期檢查。

缺點:對內存不友好,如果一個鍵已經過期,但是一直沒有使用,那么該鍵就會一直存在內存中,如果數據庫中有很多這種使用不到的過期鍵,這些鍵便永遠不會被刪除,內存永遠不會釋放。從而造成內存泄漏。

3、定期刪除

每隔一段時間,我們就對一些key進行檢查,刪除里面過期的key。

優點:可以通過限制刪除操作執行的時長和頻率來減少刪除操作對 CPU 的影響。另外定期刪除,也能有效釋放過期鍵占用的內存。

缺點:難以確定刪除操作執行的時長和頻率。如果執行的太頻繁,定期刪除策略變得和定時刪除策略一樣,對CPU不友好。如果執行的太少,那又和惰性刪除一樣了,過期鍵占用的內存不會及時得到釋放。另外最重要的是,在獲取某個鍵時,如果某個鍵的過期時間已經到了,但是還沒執行定期刪除,那么就會返回這個鍵的值,這是業務不能忍受的錯誤。

Redis內存淘汰機制?

當現有內存大于 maxmemory 時,便會觸發Redis主動淘汰內存方式,有如下幾種淘汰方式:

Redis 4.0前提供 6種數據淘汰策略:

volatile-lru:利用LRU算法移除設置過過期時間的key (LRU:最近使用 Least Recently Used )

allkeys-lru:當內存不足以容納新寫入數據時,在鍵空間中,移除最近最少使用的key(這個是最常用的)

volatile-ttl:從已設置過期時間的數據集(server.db[i].expires)中挑選將要過期的數據淘汰

volatile-random:從已設置過期時間的數據集(server.db[i].expires)中任意選擇數據淘汰

allkeys-random:從數據集(server.db[i].dict)中任意選擇數據淘汰

no-eviction:禁止驅逐數據,也就是說當內存不足以容納新寫入數據時,新寫入操作會報錯。這個應該沒人使用吧!

Redis 4.0后增加以下兩種:

volatile-lfu:從已設置過期時間的數據集(server.db[i].expires)中挑選最不經常使用的數據淘汰(LFU(Least Frequently Used)算法,也就是最頻繁被訪問的數據將來最有可能被訪問到)

allkeys-lfu:當內存不足以容納新寫入數據時,在鍵空間中,移除最不經常使用的key。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 內存
    +關注

    關注

    8

    文章

    3028

    瀏覽量

    74076
  • 函數
    +關注

    關注

    3

    文章

    4332

    瀏覽量

    62651
  • Redis
    +關注

    關注

    0

    文章

    376

    瀏覽量

    10880
收藏 人收藏

    評論

    相關推薦

    如何排查Redis性能問題 Redis內部實現原理解析

    作為業務開發人員,我們需要了解 Redis 的基本原理,例如各個命令執行的時間復雜度、數據過期策略、數據淘汰策略等,從而更合理地使用 Redis
    發表于 07-05 12:33 ?338次閱讀
    如何排查<b class='flag-5'>Redis</b>性能問題 <b class='flag-5'>Redis</b>內部實現原理解析

    Redis內存淘汰機制

    redis淘汰策略
    發表于 09-27 07:55

    淺析Redis的過期機制

    Redis數據過期策略詳解
    發表于 10-12 15:12

    Redis的發布訂閱機制

    Redis之發布訂閱機制
    發表于 06-11 13:21

    Redis常見面試題及答案

    redis的數據類型,以及每種數據類型的使用場景,Redis 內部結構 redis的過期策略以及內存
    的頭像 發表于 12-16 11:44 ?2208次閱讀
    <b class='flag-5'>Redis</b>常見面試題及答案

    Redis持久化機制的實現原理和使用技巧

    Redis將數據存儲在內存中,宕機或重啟都會使內存數據全部丟失, Redis的持久化機制用來保證數據不會因為故障而丟失。
    的頭像 發表于 09-13 16:42 ?1005次閱讀

    redis緩存滿了怎么辦?

    只有在 Redis 的運行內存達到了某個閥值,才會觸發內存淘汰機制,這個閥值就是我們設置的最大運行內存
    發表于 08-21 10:42 ?236次閱讀
    <b class='flag-5'>redis</b>緩存滿了怎么辦?

    Redis 的數據清理策略

    本文整理 Redis 的數據清理策略所有代碼來自 Redis version :5.0, 不同版本的 Redis 策略可能有調整
    發表于 09-19 14:24 ?387次閱讀
    <b class='flag-5'>Redis</b> 的數據清理<b class='flag-5'>策略</b>

    Redis持久化機制介紹

    Redis持久化機制? 為了能夠重用Redis數據,或者防止系統故障,我們需要將Redis中的數據寫入到磁盤空間中,即持久化。Redis提供
    的頭像 發表于 10-09 11:44 ?490次閱讀
    <b class='flag-5'>Redis</b>持久化<b class='flag-5'>機制</b><b class='flag-5'>介紹</b>

    Redis 如何刪除數據

    閻王的處理時間會變得很長,而且處理繁忙,Redis 就會出現卡頓現象。 Redis 有三種策略刪除過期 Key 相關命令 expire key seconds # 過期時間為秒數, k
    的頭像 發表于 10-09 16:01 ?517次閱讀

    為什么使用top命令時,Redis還是占了很多內存?

    實際上,這是因為,當數據刪除后,Redis 釋放的內存空間會由內存分配器管理,并不會立即返回給操作系統。所以,操作系統仍然會記錄著給 Redis
    的頭像 發表于 12-01 09:25 ?662次閱讀
    為什么使用top命令時,<b class='flag-5'>Redis</b>還是占了很多<b class='flag-5'>內存</b>?

    redis機制原理

    Redis是一款高性能的開源內存數據庫,用于存儲和檢索數據。在多線程或分布式環境中,需要實現并發控制來保證數據一致性和線程安全。Redis提供了一種簡單而高效的鎖機制,可以用來實現并發
    的頭像 發表于 12-04 11:08 ?1244次閱讀

    redis淘汰策略

    Redis是一種基于內存的鍵值存儲系統,為了充分利用內存,Redis采用了一些淘汰策略來管理
    的頭像 發表于 12-04 16:23 ?549次閱讀

    redis的lru原理

    Redis是一種基于內存的鍵值數據庫,它使用了LRU(Least Recently Used)算法來進行緩存的數據淘汰。LRU算法的核心思想是最近最少使用的數據將會在未來也不常用,因此應該優先
    的頭像 發表于 12-05 09:56 ?631次閱讀

    redis持久化機制優缺點

    Redis是一個基于內存的高性能鍵值存儲系統,它提供了多種持久化機制來保證數據的可靠性。本文將詳細介紹Redis的持久化
    的頭像 發表于 12-05 10:03 ?730次閱讀
    主站蜘蛛池模板: 婷婷亚洲五月色综合久久| 国产欧美日韩网站| 成人欧美尽粗二区三区AV| 大胆国模一区二区三区伊人| 九九精彩视频在线观看视频| 男人J桶进男人屁股过程| 中国二级毛片| 亚洲嫩草影院久久精品| 国产成人 免费观看| 日韩一区二区在线免费观看| yellow在线观看免费直播| 免费国产成人高清在线看软件| 夜夜草导航| 久久WWW免费人成一看片| 亚洲精品久久久WWW游戏好玩| 高清无码中文字幕在线观看视频| 久久国产亚洲电影天堂| 亚洲欧美日韩人成| 大陆老熟女60岁| 美女脱光app| 97视频免费在线观看| 男女后进式猛烈xx00动态图片| 9966在线观看免费高清电影| 欧美高清69vivo| 成人欧美一区二区三区白人| 人妻插B视频一区二区三区| 99视频在线免费看| 色综合久久五月| 久草在线精彩免费视频| 中文字幕 人妻熟女| 野花日本高清在线观看免费吗| 国产ts在线| 999精品国产人妻无码系列| 热99re久久精品国产首页| 国内精品人妻无码久久久影院蜜桃 | www.av色| 色柚视频网站ww色| 青青草视频在线ac| 永久adc视频| 碰超成人在线公开免费视频| 国产人妖一区二区|