{eval=Array;=+count(Array);}

国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

問答專欄Q & A COLUMN

redis怎樣設計緩存的淘汰機制?

社區管理員社區管理員 回答1 收藏3
收藏問題
溫馨提示
該問題目前已經被作者或者管理員關閉, 無法添加新回復

1條回答

社區管理員

社區管理員

回答于2022-10-19 11:56

1)業務數據在不斷地增長,不可能將所有數據全部存儲在 Redis 緩存中,內存的價格遠遠大于磁盤。所以需要做淘汰機制的設計;
(2)緩存的淘汰就是根據一定的策略,將不太重要的數據從緩存中進行刪除;
(3)Redis 一共有 8 種淘汰策略,在 Redis 4.0 之前有 6 種,4.0 之后又增加了 2 種,如下圖:

image.png

(4)緩存策略的解釋:
   ◆ volatile-random:在設置了過期時間的數據中,進行隨機刪除;
   ◆ volatile-ttl:根據過期時間,越早過期的數據越先刪除;
   ◆ volatile-lru:在設置了過期時間的數據中,根據 LRU 算法進行數據刪除;
   ◆ volatile-lfu:在設置了過期時間的數據中,根據 LFU 算法進行數據刪除;
   ◆ allkeys-lru:在所有數據中,根據 LRU 算法進行數據刪除;
   ◆ allkeys-random:在所有數據中,進行隨機刪除;
   ◆ allkeys-lfu:在所有數據中,根據 LFU 算法進行數據刪除;
(5)默認情況下,當 Redis 的使用空間超過 maxmemory 設置的大小時,并不會淘汰數據,也就是執行的 noeviction 策略,如果寫滿,再有寫請求時就會出錯;
(6)如果業務中有明顯的熱數據和冷數據,優先使用 allkeys-lru 策略,讓熱數據保留在緩存中;
(7)如果業務中沒有明顯冷熱數據,可以使用 volatile-random 或 allkeys-random。


評論0 贊同0
  •  加載中...

社區管理員

|打造一個專業,規范,活躍的社區

TA的文章

閱讀更多

最新活動

您已邀請0人回答 查看邀請

我的邀請列表

  • 擅長該話題
  • 回答過該話題
  • 我關注的人
向幫助了您的網友說句感謝的話吧!
付費偷看金額在0.1-10元之間
<