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

淺談Redis中的緩存更新策略

 更新時(shí)間:2023年08月10日 10:10:36   作者:劉婉晴  
這篇文章主要介紹了淺談Redis中的緩存更新策略,CacheAsidePatter是我們比較常用的緩存更新策略,其由緩存調(diào)用者在更新數(shù)據(jù)庫時(shí),在業(yè)務(wù)邏輯中設(shè)置緩存更新,需要的朋友可以參考下

在這里插入圖片描述

在這里插入圖片描述

1. 緩存更新策略綜述

  1. 內(nèi)存淘汰
    • 不用自己維護(hù),利用 Redis 自己的內(nèi)存淘汰機(jī)制 (內(nèi)存不足時(shí),觸發(fā)策略,默認(rèn)開啟,可自己配置),其可在一定程度上保持?jǐn)?shù)據(jù)一致性
  2. 超時(shí)剔除
    • 給數(shù)據(jù)添加 TTL,到期之后自動(dòng)剔除,是最終一致性
  3. 自動(dòng)更新
    • 編寫業(yè)務(wù)邏輯,修改數(shù)據(jù)庫時(shí),更新緩存,一致性高,維護(hù)成本高

2. 緩存策略的選擇

選擇內(nèi)存策略,要基于業(yè)務(wù)場(chǎng)景 —— 低一致性需求,高一致性需求

在這里插入圖片描述

3. 主動(dòng)更新策略

緩存的主動(dòng)更新策略又分為以下三種:

在這里插入圖片描述

4. Cache Aside Pattern

Cache Aside Patter 是我們比較常用的緩存更新策略,其由緩存調(diào)用者在更新數(shù)據(jù)庫時(shí),在業(yè)務(wù)邏輯中設(shè)置緩存更新。對(duì) Cache Aside Pattern ,有以下三個(gè)問題比較重要。

  • 是刪除緩存還是更新緩存?
    使用更新數(shù)據(jù)庫時(shí)刪除緩存,下次讀數(shù)據(jù)的時(shí)候再寫入緩存的策略,更新緩存會(huì)產(chǎn)生很多不必要的寫操作。
  • 如何保證緩存與數(shù)據(jù)庫的操作的同時(shí)成功或者失敗
    在單體項(xiàng)目中很好控制,在分布式項(xiàng)目中,使用分布式事務(wù)解決。
  • 先操作緩存還是先操作數(shù)據(jù)庫

線程問題:使用先操作數(shù)據(jù)庫,再刪除緩存。先操作數(shù)據(jù)庫再操作緩存,能減少發(fā)生問題的概率。

如下是兩種線程不安全問題產(chǎn)生的場(chǎng)景,但是因?yàn)榫彺娴牟僮鲾?shù)據(jù)的速度是遠(yuǎn)遠(yuǎn)高于數(shù)據(jù)庫寫操作的速度的,因此先操作數(shù)據(jù)庫再刪除緩存,出現(xiàn)問題的可能性低。

在這里插入圖片描述

5.代碼實(shí)現(xiàn)

在更新代碼中,加入刪除緩存的邏輯即可,代碼示例如下:

    @Override
    public Result update(Shop shop) {
        if(shop == null){
            return Result.fail("店鋪不能為 null");
        }
        // 更新數(shù)據(jù)庫
        updateById(shop);
        // 刪除緩存
        stringRedisTemplate.delete(CACHE_SHOP_KEY + shop.getId());
        return Result.ok();
    }

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

相關(guān)文章

  • Redis唯一ID生成器的實(shí)現(xiàn)

    Redis唯一ID生成器的實(shí)現(xiàn)

    本文主要介紹了Redis唯一ID生成器的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • 淺析Redis分布式鎖

    淺析Redis分布式鎖

    本篇文章通過實(shí)例給大家講解了Redis分布式鎖工作原理以及用法分享,有需要的朋友參考學(xué)習(xí)下吧。
    2017-12-12
  • Redis官方ORM框架比RedisTemplate更優(yōu)雅

    Redis官方ORM框架比RedisTemplate更優(yōu)雅

    這篇文章主要為大家介紹了Redis官方ORM框架比RedisTemplate更優(yōu)雅的使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Redis cluster集群的介紹

    Redis cluster集群的介紹

    今天小編就為大家分享一篇關(guān)于Redis cluster集群的介紹,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Redis數(shù)據(jù)編碼詳解

    Redis數(shù)據(jù)編碼詳解

    這篇文章主要介紹了Redis數(shù)據(jù)編碼的相關(guān)知識(shí),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2026-03-03
  • Redis通用命令介紹以及key的層級(jí)結(jié)構(gòu)講解

    Redis通用命令介紹以及key的層級(jí)結(jié)構(gòu)講解

    這篇文章主要介紹了Redis通用命令以及key的層級(jí)結(jié)構(gòu),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-12-12
  • Redis列表類型的常用命令小結(jié)

    Redis列表類型的常用命令小結(jié)

    這篇文章給大家整理了在操作Redis列表類型中的常用命令,文章總結(jié)的很全面,對(duì)大家學(xué)習(xí)Redis具有一定的參考借鑒價(jià)值,下面來一起看看吧。
    2016-09-09
  • Redis請(qǐng)求處理的流程分析

    Redis請(qǐng)求處理的流程分析

    這篇文章主要介紹了Redis?是如何進(jìn)行請(qǐng)求處理,這篇文章介紹了整個(gè)?Redis?的請(qǐng)求處理模型到底是怎樣的。從注冊(cè)監(jiān)聽?fd?事件到執(zhí)行命令,到最后將數(shù)據(jù)回寫給客戶端都做了個(gè)大概的分析,需要的朋友可以參考下
    2022-07-07
  • Redis分布式鎖中8個(gè)常見面試題小結(jié)

    Redis分布式鎖中8個(gè)常見面試題小結(jié)

    本文主要介紹了Redis分布式鎖中8個(gè)常見面試題小結(jié),包括使用Redis、RedLock算法和ZooKeeper等工具,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-03-03
  • Redis中散列類型的常用命令小結(jié)

    Redis中散列類型的常用命令小結(jié)

    散列類型的鍵值其實(shí)也是一種字典解耦,其存儲(chǔ)了字段和字段值的映射,但字段值只能是字符串,不支持其他數(shù)據(jù)類型,所以說散列類型不能嵌套其他的數(shù)據(jù)類型。下面就來詳細(xì)介紹下Redis中散列類型的常用命令,有需要的可以參考學(xué)習(xí)。
    2016-09-09

最新評(píng)論

邢台市| 崇信县| 桃源县| 离岛区| 东山县| 阜阳市| 彝良县| 建湖县| 台北县| 石景山区| 故城县| 云南省| 德化县| 左权县| 扎鲁特旗| 延川县| 乌拉特前旗| 高州市| 房产| 光泽县| 日土县| 海丰县| 通河县| 依兰县| 武乡县| 洱源县| 乌恰县| 唐山市| 阳谷县| 义马市| 共和县| 西吉县| 布尔津县| 延津县| 聊城市| 三都| 独山县| 中牟县| 双峰县| 左贡县| 常熟市|