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

成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

問答專欄Q & A COLUMN

redis怎樣設(shè)計緩存的淘汰機制?

社區(qū)管理員社區(qū)管理員 回答1 收藏3
收藏問題
溫馨提示
該問題目前已經(jīng)被作者或者管理員關(guān)閉, 無法添加新回復

1條回答

社區(qū)管理員

社區(qū)管理員

回答于2022-10-19 11:56

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

image.png

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


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

社區(qū)管理員

|打造一個專業(yè),規(guī)范,活躍的社區(qū)

TA的文章

閱讀更多

最新活動

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

我的邀請列表

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