亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Redis的數(shù)據過期策略和數(shù)據淘汰策略

 更新時間:2025年02月12日 08:24:43   作者:茂桑  
本文主要介紹了Redis的數(shù)據過期策略和數(shù)據淘汰策略,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

一、數(shù)據過期策略

Redis的key過期之后,會立即刪除嗎?

是否立即刪除,這是根據Redis的數(shù)據過期策略來決定的

Redis對數(shù)據設值數(shù)據的過期時間,數(shù)據過期后,就需要將數(shù)據從內存中刪除掉??梢园凑詹煌囊?guī)則進行刪除,這些刪除規(guī)則就被稱之為數(shù)據的刪除策略(數(shù)據過期策略)

Redis的過期策略分為以下兩種策略

1、惰性刪除

對Redis中的一個key設置過期時間之后,我們不去管他,當需要該key時,檢查其是否已經過期,如果過期,就刪掉它;反之則返回該key

# 舉例:給name屬性設置過期
set name zhangsan 10

# 過期后再獲取,發(fā)現(xiàn)name過期了,直接刪除key
get name

惰性刪除優(yōu)缺點:

優(yōu)點:對CPU友好,對于很多用不到的key不用浪費時間進行過期檢查

缺點:對內存不友好,如果一個key過期了,但是一直沒嘗試獲?。]使用),那么不會察覺到這個key已經廢棄了,就會一直保存在內存中,內存永遠不會釋放

2、定期刪除

每隔一段時間,我們就對一些key(從一定數(shù)量的緩存中取出一部分key)進行檢查,檢查是否過期,過期則刪除

定期策略有兩種模式:

SLOW模式:定時任務,執(zhí)行頻率是10hz(1秒執(zhí)行10次,也就是100ms執(zhí)行一次),每次不超過25ms,可以通過修改配置寄文件redis.conf的hz選項調整這個頻率

FAST模式:執(zhí)行頻率不固定,但是兩次刪除的間隔不會低于2ms,每次耗時不超過1ms

定期刪除的優(yōu)缺點:

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

缺點:如果調的太快,可能影響CPU資源,一直檢查key是否過期去了;調的太慢,又達不到效果

Redis的真實使用的過期刪除策略實際上是:惰性刪除 + 定期策略兩種策略同時使用的

二、數(shù)據淘汰策略

1、數(shù)據淘汰策略概念

數(shù)據淘汰策略和數(shù)據淘汰策略概念不一樣,可以認為是一種異常情況下的處理策略

數(shù)據淘汰策略指的是:當redis中的內存不夠用時,此時再向redis中添加新的key(新數(shù)據),那么redis會按照一定規(guī)則將內存中的數(shù)據刪掉,這種數(shù)據刪除的規(guī)則被稱之為內存的淘汰策略

2、8種數(shù)據淘汰策略

當內存不足時,redis支持以下8種數(shù)據淘汰策略來選擇刪除哪些key:(不用記得這么多,知道有默認的noeviction和LRU、LFU行了)

1、noeviction:當內存不足時,不淘汰任何key,但是也不允許寫入新數(shù)據,默認是這種策略

2、volatile-ttl:對設置了TTL(過期時間)的key,比較這些key的TTL,過期剩余時間越小的,優(yōu)先被淘汰

3、allkeys-random:從全體key中,隨機進行淘汰(隨機???刪到那種《很長時間才能從數(shù)據庫查出來的,又是熱點key的》就老實了,直接緩存擊穿)

4、volatile-random:對設置了TTL(過期時間)的key,隨機進行淘汰

5、allkeys-lru:對全體key,基于LRU算法進行淘汰

6、volatile-lru:對設置了TTL(過期時間)的key,基于LRU算法進行淘汰

7、allkeys-lfu:對全體key,基于LFU算法進行淘汰

6、volatie-lfu:對設置了TTL(過期時間)的key,基于LFU算法進行淘汰

3、什么是LRU算法和LFU算法呢?

LRU(Least Recently Used):Least(最少的)Recently(最近)

最近最少使用:用當前時間,減去key的最后一次訪問時間,這個值越大則淘汰優(yōu)先級越高

舉例:key1是3s前訪問過一次,key2是9s前訪問過一次,那么刪除的就是key2

LFU(Least Frequently Used):Frequently(頻繁的)

最少頻率使用:統(tǒng)計每個key在一段時間內的訪問頻率,頻率越小淘汰優(yōu)先級越高。

舉例:key1最近5s被訪問了4次,key2最近5s被訪問了9次,刪除的就是key1

4、數(shù)據淘汰策略-使用建議

1、 優(yōu)先使用 alkeys-lru 策略。充分利用 LRU 算法的優(yōu)勢,把最近最常訪問的數(shù)據留在緩存中。如果業(yè)務有明顯的冷熱數(shù)據區(qū)分,建議使用。

2、如果業(yè)務中數(shù)據訪問頻率差別不大,沒有明顯冷熱數(shù)據區(qū)分,建議使用alkeys-random,隨機選擇淘汰

3、如果業(yè)務中有置頂?shù)男枨螅梢允褂?volatile-lru 策略,同時置頂數(shù)據不設置過期時間,這些數(shù)據就一直不被刪除會淘汰其他設置過期時間的數(shù)據。

4、如果業(yè)務中有短時高頻訪問的數(shù)據,可以使用 allkeys-lfu 或 volatile-lfu 策略。

舉例:如果數(shù)據庫中有1000萬數(shù)據,redis中只能緩存20萬條,那么如何保證redis中的數(shù)據都是熱點數(shù)據呢?

使用allkey-lru策略,挑選最近最少使用的數(shù)據淘汰,留下來的肯定是最近最常訪問的熱點數(shù)據

我之前那家公司redis中保存的都是一些簡單的配置項,并沒有看到配置什么淘汰策略,應該用的就是默認的noeviction,內存占用極低,只用了幾十MB

到此這篇關于Redis的數(shù)據過期策略和數(shù)據淘汰策略的文章就介紹到這了,更多相關Redis 數(shù)據過期策略和數(shù)據淘汰策略內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關文章

  • 了解redis中RDB結構_動力節(jié)點Java學院整理

    了解redis中RDB結構_動力節(jié)點Java學院整理

    這篇文章主要為大家詳細介紹了redis中RDB結構,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • 一文掌握Redis的三種集群方案(小結)

    一文掌握Redis的三種集群方案(小結)

    這篇文章主要介紹了一文掌握Redis的三種集群方案(小結),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • Redis主從/哨兵機制原理分析

    Redis主從/哨兵機制原理分析

    本文介紹了Redis的主從復制和哨兵機制,主從復制實現(xiàn)了數(shù)據的熱備份和負載均衡,而哨兵機制可以監(jiān)控Redis集群,實現(xiàn)自動故障轉移,哨兵機制通過監(jiān)控、下線、選舉和故障轉移等步驟,確保Redis集群的高可用性
    2025-01-01
  • Rocky9部署redis的實現(xiàn)示例

    Rocky9部署redis的實現(xiàn)示例

    本文主要介紹了Rocky9部署redis的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-06-06
  • redis+lua實現(xiàn)分布式限流的示例

    redis+lua實現(xiàn)分布式限流的示例

    本文主要介紹了redis+lua實現(xiàn)分布式限流的示例,可以實現(xiàn)復雜的限流邏輯,如滑動窗口限流,并且避免了多步操作導致的并發(fā)問題,具有一定的參考價值,感興趣的可以了解一下
    2025-03-03
  • 使用Redis實現(xiàn)用戶積分排行榜的教程

    使用Redis實現(xiàn)用戶積分排行榜的教程

    這篇文章主要介紹了使用Redis實現(xiàn)用戶積分排行榜的教程,包括一個用PHP腳本進行操作的例子,需要的朋友可以參考下
    2015-04-04
  • Redis cluster集群模式的原理解析

    Redis cluster集群模式的原理解析

    這篇文章主要介紹了Redis cluster集群模式的原理解析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • Redis面試必備之緩存設計規(guī)范與性能優(yōu)化詳解

    Redis面試必備之緩存設計規(guī)范與性能優(yōu)化詳解

    你是否在使用Redis時,不清楚Redis應該遵循的設計規(guī)范而苦惱,你是否在Redis出現(xiàn)性能問題時,不知道該如何優(yōu)化而發(fā)愁,快跟隨小編一起學習起來吧
    2024-03-03
  • 深入理解Redis7哨兵模式(保姆級教學)

    深入理解Redis7哨兵模式(保姆級教學)

    Redis的主從復制存在一定的缺陷,為了解決這一問題,Redis官方推薦一種高可用方案哨兵模式,本文主要介紹了深入理解Redis7哨兵模式,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • redis使用Lua腳本解決多線程下的超賣問題及原因解析

    redis使用Lua腳本解決多線程下的超賣問題及原因解析

    這篇文章主要介紹了redis使用Lua腳本解決多線程下的超賣問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05

最新評論