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

Redis的緩存更新策略及最佳實(shí)踐方案

 更新時(shí)間:2023年08月10日 10:31:40   作者:程序員阿紅  
這篇文章主要介紹了Redis的緩存更新策略及最佳實(shí)踐方案,當(dāng)我們向redis插入太多數(shù)據(jù),此時(shí)就可能會(huì)導(dǎo)致緩存中的數(shù)據(jù)過多,所以redis會(huì)對(duì)部分?jǐn)?shù)據(jù)進(jìn)行更新,或者把它成為淘汰更合適,需要的朋友可以參考下

緩存更新

緩存的更新是redis為了節(jié)約內(nèi)存而設(shè)計(jì)出來的東西,主要是因?yàn)閮?nèi)存數(shù)據(jù)寶貴,當(dāng)我們向redis插入太多數(shù)據(jù),此時(shí)就可能會(huì)導(dǎo)致緩存中的數(shù)據(jù)過多,所以redis會(huì)對(duì)部分?jǐn)?shù)據(jù)進(jìn)行更新,或者把它成為淘汰更合適。

1.redis的緩存更新的三種策略

  1. 內(nèi)存淘汰
    • redis自動(dòng)進(jìn)行,當(dāng)redis內(nèi)存達(dá)到咱們?cè)O(shè)定的max-memery的時(shí)候會(huì)自動(dòng)觸發(fā)淘汰機(jī)制,淘汰調(diào)一些不重要的數(shù)據(jù)(自己可以設(shè)置策略方式)
  2. 超時(shí)剔除
    • 當(dāng)我們給redis設(shè)置了過期時(shí)間ttl之后,redis會(huì)將超時(shí)的數(shù)據(jù)進(jìn)行刪除,方便咱們繼續(xù)使用緩存。
  3. 主動(dòng)更新
    • 我們可以手動(dòng)條用方法把緩存刪掉,通常用于解決緩存和數(shù)據(jù)庫不一致問題。

主動(dòng)更新有分三種方式:

  1. 由緩存的調(diào)用者,在更新數(shù)據(jù)庫的同時(shí)更新緩存。
  2. 緩存和數(shù)據(jù)庫整合為一個(gè)服務(wù),由服務(wù)來維護(hù)一致性。調(diào)用者調(diào)用該服務(wù)(對(duì)外提供一個(gè)透明的服務(wù)),無需關(guān)系緩存一致性問題。
  3. 調(diào)用者只操作緩存,有其他線程異步的將緩存持久化到數(shù)據(jù)庫,保證最終一致。(類似于數(shù)據(jù)庫的索引,一個(gè)索引更新在沒有提交事務(wù)時(shí),修改了100次只有最后一次有效,但這會(huì)使效率降低。)

如果采用第一個(gè)方案,那么假設(shè)我們每次操作數(shù)據(jù)庫后,都操作緩存,但是中間如果沒有人查詢,那么這個(gè)更新動(dòng)作實(shí)際上只有最后一次生效,中間的更新動(dòng)作意義并不大,我們可以把緩存刪除,等待再次查詢時(shí),將緩存中的數(shù)據(jù)加載出來

  • 刪除緩存還是更新緩存?
    • 更新緩存:每次更新數(shù)據(jù)庫都更新緩存,無效寫操作較多
    • 刪除緩存:更新數(shù)據(jù)庫時(shí)讓緩存失效,查詢時(shí)再更新緩存
  • 如何保證緩存與數(shù)據(jù)庫的操作的同時(shí)成功或失???
    • 單體系統(tǒng),將緩存與數(shù)據(jù)庫操作放在一個(gè)事務(wù)
    • 分布式系統(tǒng),利用TCC等分布式事務(wù)方案
  • 先操作緩存還是先操作數(shù)據(jù)庫?
    • 先刪除緩存,再操作數(shù)據(jù)庫 (第一種方案)
    • 先操作數(shù)據(jù)庫,再刪除緩存

應(yīng)該具體操作緩存還是操作數(shù)據(jù)庫,我們應(yīng)當(dāng)是先操作數(shù)據(jù)庫,再刪除緩存,原因在于,如果你選擇第一種方案,在兩個(gè)線程并發(fā)來訪問時(shí),假設(shè)線程1先來,他先把緩存刪了,此時(shí)線程2過來,他查詢緩存數(shù)據(jù)并不存在,此時(shí)他寫入緩存,當(dāng)他寫入緩存后,線程1再執(zhí)行更新動(dòng)作時(shí),實(shí)際上寫入的就是舊的數(shù)據(jù),新的數(shù)據(jù)被舊數(shù)據(jù)覆蓋了。

image-20221206204151058

redis的讀寫是微秒級(jí)別的,但是數(shù)據(jù)庫的更新時(shí)遠(yuǎn)遠(yuǎn)比redis的讀寫慢的。

三者之間比較

image-20221206195626851

2. 緩存更新策略的最佳實(shí)踐方案:

  1. 低一致性需求:使用Redis自帶的內(nèi)存淘汰機(jī)制
  2. 高一致性需求:主動(dòng)更新,并以超時(shí)剔除作為兜底方案
  • 讀操作:
    • 緩存命中則直接返回
    • 緩存未命中則查詢數(shù)據(jù)庫,并寫入緩存,設(shè)定超時(shí)時(shí)間
  • 寫操作:
    • 先寫數(shù)據(jù)庫,然后再刪除緩存
    • 要確保數(shù)據(jù)庫與緩存操作的原子性

到此這篇關(guān)于Redis的緩存更新策略及最佳實(shí)踐方案的文章就介紹到這了,更多相關(guān)Redis緩存更新策略內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決redis修改requirepass后不生效的問題

    解決redis修改requirepass后不生效的問題

    今天小編就為大家分享一篇解決redis修改requirepass后不生效的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • redission分布式鎖防止重復(fù)初始化問題

    redission分布式鎖防止重復(fù)初始化問題

    這篇文章主要介紹了redission分布式鎖防止重復(fù)初始化問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • k8s部署redis集群實(shí)現(xiàn)過程實(shí)例詳解

    k8s部署redis集群實(shí)現(xiàn)過程實(shí)例詳解

    這篇文章主要為大家介紹了k8s部署redis集群實(shí)現(xiàn)過程實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • 利用redis實(shí)現(xiàn)分布式鎖,快速解決高并發(fā)時(shí)的線程安全問題

    利用redis實(shí)現(xiàn)分布式鎖,快速解決高并發(fā)時(shí)的線程安全問題

    這篇文章主要介紹了利用redis實(shí)現(xiàn)分布式鎖,快速解決高并發(fā)時(shí)的線程安全問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • 淺談Redis批量刪除的大坑

    淺談Redis批量刪除的大坑

    本文詳細(xì)剖析了Redis批量刪除鍵時(shí)可能引發(fā)的性能問題及解決方案,通過分析常見的批量刪除方法(如KEYS+DEL、SCAN+DEL、UNLINK)的的優(yōu)缺點(diǎn),提出了改進(jìn)方案,希望幫助大家在實(shí)際業(yè)務(wù)中有效規(guī)避Redis批量刪除鍵的風(fēng)險(xiǎn)
    2026-05-05
  • redis使用Lua腳本解決多線程下的超賣問題及原因解析

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

    這篇文章主要介紹了redis使用Lua腳本解決多線程下的超賣問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • redis快速部署為docker容器的方法實(shí)現(xiàn)

    redis快速部署為docker容器的方法實(shí)現(xiàn)

    部署 Redis 作為 Docker 容器是一種快速、靈活且可重復(fù)使用的方式,特別適合開發(fā)、測(cè)試和部署環(huán)境,本文主要介紹了redis快速部署為docker容器的方法實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05
  • Windows下安裝Redis全過程

    Windows下安裝Redis全過程

    這篇文章主要介紹了Windows下安裝Redis全過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2026-05-05
  • Redis緩存過期淘汰策略用法解讀

    Redis緩存過期淘汰策略用法解讀

    這篇文章主要介紹了Redis緩存過期淘汰策略用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2026-03-03
  • 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)論

隆安县| 黄龙县| 荃湾区| 仙游县| 湟源县| 深州市| 蒙自县| 邢台市| 溧水县| 广东省| 龙胜| 永和县| 罗源县| 浮山县| 阿拉尔市| 新丰县| 林芝县| 桑日县| 健康| 资中县| 三台县| 闵行区| 浦城县| 顺昌县| 澎湖县| 靖边县| 武宣县| 仁怀市| 晋宁县| 靖安县| 吉林市| 股票| 健康| 醴陵市| 安吉县| 历史| 新民市| 定边县| 双城市| 日土县| 察哈|