您好,登錄后才能下訂單哦!
這篇文章主要講解了“Redis中緩存過期、內存被緩存占用要如何處理”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Redis中緩存過期、內存被緩存占用要如何處理”吧!
設置了expire的key緩存過期了,但是服務器的內存還是會被占用,這是因為redis所基于的兩種刪除策略
redis有兩種策略:
(主動)定時刪除
定時隨機的檢查過期的key,如果過期則清理刪除。(每秒檢查次數在redis.conf中的hz配置)
(被動)惰性刪除
當客戶端請求一個已經過期的key的時候,那么redis會檢查這個key是否過期,如果過期了,則刪除,然后返回一個nil。這種策略對cpu比較友好,不會有太多的損耗,但是內存占用會比較高。
所以,雖然key過期了,但是只要沒有被redis清理,那么其實內存還是會被占用著的。
內存占滿了,可以使用硬盤,來保存,但是沒意義,因為硬盤沒有內存快,會影響redis性能。
所以,當內存占用滿了以后,redis提供了一套緩存淘汰機制:MEMORY MANAGEMENT
maxmemory
:當內存已使用率到達,則開始清理緩存
* noeviction:舊緩存永不過期,新緩存設置不了,返回錯誤 * allkeys-lru:清除最少用的舊緩存,然后保存新的緩存(推薦使用) * allkeys-random:在所有的緩存中隨機刪除(不推薦) * volatile-lru:在那些設置了expire過期時間的緩存中,清除最少用的舊緩存,然后保存新的緩存 * volatile-random:在那些設置了expire過期時間的緩存中,隨機刪除緩存 * volatile-ttl:在那些設置了expire過期時間的緩存中,刪除即將過期的`
感謝各位的閱讀,以上就是“Redis中緩存過期、內存被緩存占用要如何處理”的內容了,經過本文的學習后,相信大家對Redis中緩存過期、內存被緩存占用要如何處理這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。