如何保證Redis中存的都是熱點資料?

2021-10-12 03:08:44 字數 770 閱讀 7536

具體的可以看之前的這篇部落格,考的就是redis的逐出演算法。

達到最大記憶體後的,對被挑選出來的資料進行刪除的策略

影響資料逐出的相關配置

檢測易失資料(可能會過期的資料集server.db[i].expires )

① volatile-lru:挑選最近最少使用的資料淘汰

② volatile-lfu:挑選最近使用次數最少的資料淘汰

③ volatile-ttl:挑選將要過期的資料淘汰

④ volatile-random:任意選擇資料淘汰

檢測全庫資料(所有資料集server.db[i].dict )

⑤ allkeys-lru:挑選最近最少使用的資料淘汰

⑥ allkeys-lfu:挑選最近使用次數最少的資料淘汰

⑦ allkeys-random:任意選擇資料淘汰

放棄資料驅逐

⑧ no-enviction(驅逐):禁止驅逐資料( redis4.0中預設策略),會引發錯誤oom( out of memory)

場景:資料庫中有1000w的資料,而redis中只有50w資料,如何保證redis中資料都是熱點資料?

方案:限定 redis 占用的記憶體,redis 會根據自身資料淘汰策略,留下熱資料到記憶體。所以,計算一下 50w 資料大約占用的記憶體,然後設定一下 redis 記憶體限制即可,並將淘汰策略為volatile-lru或者allkeys-lru。

設定redis最大占用記憶體:

開啟redis配置檔案,設定maxmemory引數,maxmemory是bytes位元組型別

如何保證Redis中的資料都是熱點資料

redis 提供 6 種資料淘汰策略 1.volatile lru 從已設定過期時間的資料集 server.db i expires 中挑選最近最少使用的資料淘汰 常用 2.volatile ttl 從已設定過期時間的資料集 server.db i expires 中挑選將要過期的資料淘汰 3.vo...

如何保證redis中都是熱點資料

redis 記憶體資料集大小上公升到一定大小的時候,就會施行資料淘汰策略。redis 提供 6種資料淘汰策略 volatile lru 從已設定過期時間的資料集 server.db i expires 中挑選最近最少使用的資料淘汰 volatile ttl 從已設定過期時間的資料集 server.d...

redis如何保證資料都是熱點資料

背景 眾所周知,redis是純記憶體的操作。所以速度極快。然而記憶體的大小是有限的。如 mysql中有2000w的資料,redis中只存20w的資料,那麼如何保證redis中的資料都是熱點資料呢?答案 redis記憶體資料集達到一定大小的時候,就會實行資料淘汰策略,記憶體的淘汰機制的初衷是為了更好地...