Redis用作緩存時,如果內存空間用滿,就會自動驅逐老的數據。
一、Redis六種淘汰策略
noeviction:當內存使用達到閾值的時候,所有引起申請內存的命令會報錯。
allkeys-lru:在主鍵空間中,優先移除最近未使用的key。(推薦)
volatile-lru:在設置了過期時間的鍵空間中,優先移除最近未使用的key。
allkeys-random:在主鍵空間中,隨機移除某個key。
volatile-random:在設置了過期時間的鍵空間中,隨機移除某個key。
volatile-ttl:在設置了過期時間的鍵空間中,具有更早過期時間的key優先移除。
二、配置Redis淘汰策略
在redis.conf文件中,設置Redis 內存大小的限制,我們可以設置maxmemory ,當數據達到限定大小後,會選擇配置的策略淘汰數據。
比如:maxmemory 300mb。
通過配置maxmemory-policy noeviction 設置Redis的淘汰策略。
比如:maxmemory-policy volatile-lru