Redis快取策略

2021-09-05 12:48:42 字數 543 閱讀 3785

redis快取一般使用cache aside pattern原則。

什麼是「 cache aside pattern 」?

cache aside pattern即為旁路快取方案的經驗實踐,分為讀實踐和寫實踐。

那麼運算元據的時候先操作快取還是先運算元據庫?

1.讀請求

先從快取中讀取所需資料,如果沒有則從資料庫裡獲取資料,後去之後需要進行新的快取。

我一般在這裡做乙個aop**,把需要經常快取 資料的方法進行**需要注意的是,如果資料快取了,  

那麼對這些資料進行db操作時,需要隨之改動快取資料,避免出現資料的不同步。

2.寫請求

先操作快取,然後進行資料庫的操作,而且快取要用delete淘汰,不能用set更新快取

淘汰快取的目的在於避免在併發情況下出現資料不一致的問題.   例如以下情況在set更新快取時

就可能出現資料不一致:

(1)請求1先運算元據庫,請求2後運算元據庫

(2)請求2先set了快取,請求1後set了快取

Redis更新快取策略

1 快取 失效 客戶端請求資料先從快取中查詢,如果沒有再查詢資料庫,最後將資料放入快取 2 快取 命中 客戶端從快取中直接取到資料,返回結果 3 快取 更新 客戶端寫入資料到資料庫,成功之後,讓快取失效 下次請求時從快取中拿不到,則查詢資料庫,再放入快取 4 為什麼不採取更新後刪除快取策略?防止併發...

Redis快取逐出策略

把 redis 當做快取使用時,有時你可以方便的讓它在新資料時自動逐出舊資料。這一點大家都比較清楚,因為 memcached 預設也會這麼幹。redis 僅支援 lru 逐出策略。下文主要講述 redis maxmemory 指令,這個指令用於限定記憶體使用量,以及講述了redis 使用到的 lru...

redis 的快取策略

配置redis成為乙個快取,如果redis當做乙個快取來用,所有的key都有過期時間 1.配置快取 1 設定最大記憶體使用量 maxmemory 2mb 2 設定過期策略 maxmemory policy allkeys lru 該設定並不需要我們的應用使用expire 或相似的命令 命令去設定每個...