共計 916 個字符,預計需要花費 3 分鐘才能閱讀完成。
這篇文章主要講解了“Redis 中緩存過期、內存被緩存占用要如何處理”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著丸趣 TV 小編的思路慢慢深入,一起來研究和學習“Redis 中緩存過期、內存被緩存占用要如何處理”吧!
已過期的 key 如何處理?
設置了 expire 的 key 緩存過期了,但是服務器的內存還是會被占用,這是因為 redis 所基于的兩種刪除策略
redis 有兩種策略:
(主動)定時刪除
定時隨機的檢查過期的 key,如果過期則清理刪除。(每秒檢查次數在 redis.conf 中的 hz 配置)
(被動)惰性刪除
當客戶端請求一個已經過期的 key 的時候,那么 redis 會檢查這個 key 是否過期,如果過期了,則刪除,然后返回一個 nil。這種策略對 cpu 比較友好,不會有太多的損耗,但是內存占用會比較高。
所以,雖然 key 過期了,但是只要沒有被 redis 清理,那么其實內存還是會被占用著的。
那么如果內存被 Redis 緩存占用慢了咋辦?
內存占滿了,可以使用硬盤,來保存,但是沒意義,因為硬盤沒有內存快,會影響 redis 性能。
所以,當內存占用滿了以后,redis 提供了一套緩存淘汰機制:MEMORY MANAGEMENT
maxmemory:當內存已使用率到達,則開始清理緩存
* noeviction:舊緩存永不過期,新緩存設置不了,返回錯誤
* allkeys-lru:清除最少用的舊緩存,然后保存新的緩存(推薦使用)* allkeys-random:在所有的緩存中隨機刪除(不推薦)* volatile-lru:在那些設置了 expire 過期時間的緩存中,清除最少用的舊緩存,然后保存新的緩存
* volatile-random:在那些設置了 expire 過期時間的緩存中,隨機刪除緩存
* volatile-ttl:在那些設置了 expire 過期時間的緩存中,刪除即將過期的 `
感謝各位的閱讀,以上就是“Redis 中緩存過期、內存被緩存占用要如何處理”的內容了,經過本文的學習后,相信大家對 Redis 中緩存過期、內存被緩存占用要如何處理這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是丸趣 TV,丸趣 TV 小編將為大家推送更多相關知識點的文章,歡迎關注!