最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

Redis的key過期之后,會(huì)立即刪除嗎?

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

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

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

1、惰性刪除

對(duì)Redis中的一個(gè)key設(shè)置過期時(shí)間之后,我們不去管他,當(dāng)需要該key時(shí),檢查其是否已經(jīng)過期,如果過期,就刪掉它;反之則返回該key

# 舉例:給name屬性設(shè)置過期
set name zhangsan 10

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

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

優(yōu)點(diǎn):對(duì)CPU友好,對(duì)于很多用不到的key不用浪費(fèi)時(shí)間進(jìn)行過期檢查

缺點(diǎn):對(duì)內(nèi)存不友好,如果一個(gè)key過期了,但是一直沒嘗試獲?。]使用),那么不會(huì)察覺到這個(gè)key已經(jīng)廢棄了,就會(huì)一直保存在內(nèi)存中,內(nèi)存永遠(yuǎn)不會(huì)釋放

2、定期刪除

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

定期策略有兩種模式:

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

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

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

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

缺點(diǎn):如果調(diào)的太快,可能影響CPU資源,一直檢查key是否過期去了;調(diào)的太慢,又達(dá)不到效果

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

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

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

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

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

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

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

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

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

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

4、volatile-random:對(duì)設(shè)置了TTL(過期時(shí)間)的key,隨機(jī)進(jìn)行淘汰

5、allkeys-lru:對(duì)全體key,基于LRU算法進(jìn)行淘汰

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

7、allkeys-lfu:對(duì)全體key,基于LFU算法進(jìn)行淘汰

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

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

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

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

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

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

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

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

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

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

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

3、如果業(yè)務(wù)中有置頂?shù)男枨?,可以使?volatile-lru 策略,同時(shí)置頂數(shù)據(jù)不設(shè)置過期時(shí)間,這些數(shù)據(jù)就一直不被刪除會(huì)淘汰其他設(shè)置過期時(shí)間的數(shù)據(jù)。

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

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

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

我之前那家公司redis中保存的都是一些簡(jiǎn)單的配置項(xiàng),并沒有看到配置什么淘汰策略,應(yīng)該用的就是默認(rèn)的noeviction,內(nèi)存占用極低,只用了幾十MB

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

相關(guān)文章

  • Redis 中spark參數(shù)executor-cores引起的異常解決辦法

    Redis 中spark參數(shù)executor-cores引起的異常解決辦法

    這篇文章主要介紹了Redis 中spark參數(shù)executor-cores引起的異常解決辦法的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • Redis概述及l(fā)inux安裝redis的詳細(xì)教程

    Redis概述及l(fā)inux安裝redis的詳細(xì)教程

    這篇文章主要介紹了Redis概述及l(fā)inux安裝redis的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • redis?Template.opsForValue()中方法實(shí)例詳解

    redis?Template.opsForValue()中方法實(shí)例詳解

    這篇文章主要介紹了redis?Template.opsForValue()中方法講解,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • Redis整合Spring結(jié)合使用緩存實(shí)例

    Redis整合Spring結(jié)合使用緩存實(shí)例

    這篇文章主要介紹了Redis整合Spring結(jié)合使用緩存實(shí)例,介紹了如何在Spring中配置redis,并通過Spring中AOP的思想,將緩存的方法切入到有需要進(jìn)入緩存的類或方法前面。需要的朋友可以參考下
    2015-12-12
  • Redis+Caffeine實(shí)現(xiàn)多級(jí)緩存的步驟

    Redis+Caffeine實(shí)現(xiàn)多級(jí)緩存的步驟

    隨著不斷的發(fā)展,這一架構(gòu)也產(chǎn)生了改進(jìn),在一些場(chǎng)景下可能單純使用Redis類的遠(yuǎn)程緩存已經(jīng)不夠了,還需要進(jìn)一步配合本地緩存使用,例如Guava cache或Caffeine,從而再次提升程序的響應(yīng)速度與服務(wù)性能,這篇文章主要介紹了Redis+Caffeine實(shí)現(xiàn)多級(jí)緩存,需要的朋友可以參考下
    2024-01-01
  • windows 64位下redis安裝教程

    windows 64位下redis安裝教程

    這篇文章主要為大家詳細(xì)介紹了windows 64位下redis安裝教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • 如何保證Redis與數(shù)據(jù)庫(kù)的數(shù)據(jù)一致性

    如何保證Redis與數(shù)據(jù)庫(kù)的數(shù)據(jù)一致性

    這篇文章主要介紹了如何保證Redis與數(shù)據(jù)庫(kù)的數(shù)據(jù)一致性,文中舉了兩個(gè)場(chǎng)景例子介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • Redis事務(wù),Redis實(shí)現(xiàn)悲觀鎖,樂觀鎖方式

    Redis事務(wù),Redis實(shí)現(xiàn)悲觀鎖,樂觀鎖方式

    文章介紹了Redis事務(wù)的概念、特點(diǎn)和執(zhí)行過程,區(qū)別于MySQL事務(wù)的ACID特性,詳細(xì)講解了未授權(quán)讀取、授權(quán)讀取、重復(fù)讀取和串行化四種隔離級(jí)別,并解析了悲觀鎖和樂觀鎖的定義與應(yīng)用場(chǎng)景,最后闡述了Redis通過版本號(hào)實(shí)現(xiàn)樂觀鎖的機(jī)制
    2026-05-05
  • Redis?Cluster部署實(shí)踐

    Redis?Cluster部署實(shí)踐

    本文詳細(xì)介紹了在一臺(tái)機(jī)器上上上搭建一個(gè)3主3從的Redis集群的步驟,包括準(zhǔn)備階段、啟動(dòng)實(shí)例、組成集群、故障恢復(fù)等內(nèi)容;并提供了一些常用命令和注意事項(xiàng),幫助;以幫助讀者成功搭建Redis集群
    2026-04-04
  • Redis+Lua腳本實(shí)現(xiàn)計(jì)數(shù)器接口防刷功能(升級(jí)版)

    Redis+Lua腳本實(shí)現(xiàn)計(jì)數(shù)器接口防刷功能(升級(jí)版)

    這篇文章主要介紹了Redis+Lua腳本實(shí)現(xiàn)計(jì)數(shù)器接口防刷功能,使用腳本使得set命令和expire命令一同達(dá)到Redis被執(zhí)行且不會(huì)被干擾,在很大程度上保證了原子操作,對(duì)Redis實(shí)現(xiàn)計(jì)數(shù)器接口防刷功能感興趣的朋友一起看看吧
    2022-02-02

最新評(píng)論

咸丰县| 邵阳市| 白水县| 水城县| 万盛区| 铁岭县| 微山县| 长白| 疏勒县| 珲春市| 梧州市| 区。| 长宁县| 买车| 满城县| 大城县| 鄂伦春自治旗| 陕西省| 弥渡县| 佛冈县| 个旧市| 麻阳| 巍山| 大庆市| 民乐县| 阜新| 洛宁县| 子洲县| 永丰县| 永康市| 聂荣县| 万载县| 客服| 米易县| 黄大仙区| 鸡泽县| 毕节市| 沧源| 包头市| 萍乡市| 东安县|