欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談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 Value過大問題(鍵值過大)

    Redis Value過大問題(鍵值過大)

    這篇文章主要介紹了Redis Value過大問題(鍵值過大),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Redis連接池配置方式

    Redis連接池配置方式

    文章介紹了Redis連接池的配置方法,包括與數(shù)據(jù)庫連接時(shí)引入連接池的必要性、Java中使用Redis連接池的示例、jar包準(zhǔn)備、編寫配置代碼以及連接池參數(shù)的設(shè)置
    2024-12-12
  • Redis過期事件監(jiān)聽器的完整實(shí)現(xiàn)步驟

    Redis過期事件監(jiān)聽器的完整實(shí)現(xiàn)步驟

    要使用 Redis 過期事件監(jiān)聽器來更新數(shù)據(jù)庫狀態(tài),我們需要確保 Redis 的事件通知已啟用,并實(shí)現(xiàn)監(jiān)聽器來捕獲過期的鍵,并根據(jù)需要更新數(shù)據(jù)庫,本文給大家介紹了Redis過期事件監(jiān)聽器的完整實(shí)現(xiàn)步驟,需要的朋友可以參考下
    2024-10-10
  • Redis核心原理與實(shí)踐之字符串實(shí)現(xiàn)原理

    Redis核心原理與實(shí)踐之字符串實(shí)現(xiàn)原理

    這本書深入地分析了Redis常用特性的內(nèi)部機(jī)制與實(shí)現(xiàn)方式,內(nèi)容源自對(duì)Redis源碼的分析,并從中總結(jié)出設(shè)計(jì)思路、實(shí)現(xiàn)原理。對(duì)Redis字符串實(shí)現(xiàn)原理相關(guān)知識(shí)感興趣的朋友一起看看吧
    2021-09-09
  • 基于Redis實(shí)現(xiàn)抽獎(jiǎng)功能及問題小結(jié)

    基于Redis實(shí)現(xiàn)抽獎(jiǎng)功能及問題小結(jié)

    這篇文章主要介紹了基于Redis實(shí)現(xiàn)抽獎(jiǎng)功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • 簡單粗暴的Redis數(shù)據(jù)備份和恢復(fù)方法

    簡單粗暴的Redis數(shù)據(jù)備份和恢復(fù)方法

    這里我們來講解一個(gè)簡單粗暴的Redis數(shù)據(jù)備份和恢復(fù)方法,有一個(gè)在不同主機(jī)上遷移Redis數(shù)據(jù)的示例,還有一個(gè)備份腳本實(shí)現(xiàn)的關(guān)鍵點(diǎn)提示,一起來看一下:
    2016-06-06
  • Redis數(shù)據(jù)庫的使用場(chǎng)景介紹(避免誤用Redis)

    Redis數(shù)據(jù)庫的使用場(chǎng)景介紹(避免誤用Redis)

    這篇文章主要介紹了Redis數(shù)據(jù)庫的使用場(chǎng)景介紹(避免誤用Redis),本文用簡要的語言總結(jié)了Redis數(shù)據(jù)庫的適應(yīng)場(chǎng)合,人而避免錯(cuò)誤的使用它而產(chǎn)生昂貴的維護(hù)代價(jià),需要的朋友可以參考下
    2015-03-03
  • 淺析Redis底層數(shù)據(jù)結(jié)構(gòu)Dict

    淺析Redis底層數(shù)據(jù)結(jié)構(gòu)Dict

    Redis是一個(gè)鍵值型的數(shù)據(jù)庫,我們可以根據(jù)鍵實(shí)現(xiàn)快速的增刪改查,而鍵與值的映射關(guān)系正是通過Dict來實(shí)現(xiàn)的,當(dāng)然?Dict?也是?Set?Hash?的實(shí)現(xiàn)方式,本文就詳細(xì)帶大家介紹一下Redis底層數(shù)據(jù)結(jié)構(gòu)?Dict,,需要的朋友可以參考下
    2023-05-05
  • 一文詳解Redis的主從同步原理

    一文詳解Redis的主從同步原理

    Redis為了保證服務(wù)高可用,其中一種實(shí)現(xiàn)就是主從模式,本篇文章將對(duì)主從模式中為了保證主節(jié)點(diǎn)和從節(jié)點(diǎn)數(shù)據(jù)一致而實(shí)現(xiàn)的主從同步機(jī)制進(jìn)行學(xué)習(xí),感興趣的同學(xué)可以參考閱讀下
    2023-07-07
  • redis?主從哨兵模式實(shí)現(xiàn)一主二從

    redis?主從哨兵模式實(shí)現(xiàn)一主二從

    本文主要介紹了redis?主從哨兵模式實(shí)現(xiàn)一主二從,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07

最新評(píng)論