Redis做緩存

緩存策略三要素:緩存命中率   緩存更新策略  最大緩存容量。衡量一個緩存方案的好壞標準是:緩存命中率。緩存命中率越高,緩存方法設計的越好。 算法

三者之間的關係爲:當緩存到達最大的緩存容量時,會觸發緩存更新策略,而緩存更新策略影響到了緩存命中率。可見,緩存方案的好壞依賴於緩存最大量的設置,以及緩存更新策略的選擇。緩存

 對於常常變更的數據,不適合作緩存。對於靜態、讀寫比高(通常10:1以上)的數據作緩存。dom

常見的緩存更新策略有:設計

1 FIFO 隊列,先進先出,典型應用:MySQL的 query cache,採用的就是這種簡單的緩存更新策略code

2 LFU:最少使用 ,藉助計數器實現隊列

3 LRU:最久未被使用,藉助計數器和隊列實現io

 對於Redis,當達到maxmemory時,採用什麼策略刪除key,有五個可選項可根據應用場景進行選擇:class

volatile-lru 採用LRU算法刪除帶有expire的key(默認)
allkeys-lru  採用LRU算法刪除任意key
volatile-random 任意刪除帶有expire的key
allkeys-random  刪除任意key
volatile-ttl 刪除最接近expire的key
noeviction  不刪除,直接對寫命令返回錯誤
相關文章
相關標籤/搜索