redis基礎及快取策略

2021-10-12 02:58:05 字數 901 閱讀 3583

我們都知道redis是基於記憶體,單執行緒機制工作,查詢速度快,效率高,一般在專案種常用來做快取,但是具體的快取策略是什麼呢?

讀且成功:使用者從redis中讀取資料,如果讀取到了,直接使用

讀且失敗:如果使用者沒有從redis中讀取到資料,則去資料庫(一般是mysql)中讀取資料,然後將資料儲存到redis當作快取

增刪改:如果使用者對資料進行增刪改,先把資料儲存到資料庫,然後讓redis中的快取失效,切記,此時不需要設定快取,因為快取一般用於查詢資料時,增刪改一般沒必要設定快取

redis資料型別:redis是key+value儲存,key永遠是string,value是有五種資料型別

string:單個資料,也是最簡單最常用的

list:儲存string型別的鍊錶

set:結構和hash類似,但是只儲存鍵,不儲存值,且不可重複

hash:value值儲存的是類似於hashmap的值,每個鍵值對也是有key+value組成,redis中的乙個key可以對應多個鍵值對

zset:一般用於實時熱點,會自動排序

redis持久化

rdb:產生乙個快照,在指定的時間間隔內,將記憶體中的資料以快照寫入硬碟

aof:以日誌形式記錄每一次操作,伺服器重啟時,會讀取該檔案重建資料庫,包裝資料庫資料是完整的

資料刪除策略

定期刪除:一段時間刪除一次

定時刪除:到達過期時間,就會刪除

惰性刪除:訪問資料時,先判度是否過期,過期則刪除,不過期則返回資料

redis淘汰策略

Redis快取策略

redis快取一般使用cache aside pattern原則。什麼是 cache aside pattern cache aside pattern即為旁路快取方案的經驗實踐,分為讀實踐和寫實踐。那麼運算元據的時候先操作快取還是先運算元據庫?1.讀請求 先從快取中讀取所需資料,如果沒有則從資料庫...

Redis更新快取策略

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

Redis快取逐出策略

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