如何使redis中存放的都是熱點數據?


當redis使用的內存超過設置的最大內存時,會觸發redis的key淘汰機制,在redis3.0中的6中淘汰策略如下:

 (1)noeviction :不刪除策略。當達到最大內存限制時,如果需要使用更多內存,則直接返回錯誤信息(redis默認淘汰策略)

   (2)allkeys-lru:在所有key中優先刪除最近最少使用(less recently used,LRU)的key。

   (3)allkeys-random:在所有key中隨機刪除一部分key

 (4)volatile-lru: 在設置了超時時間(expire)的key中優先刪除最近最少使用的key

 (5)volatile-random:在設置了超時時間的key中隨機刪除一部分key

 (6)volatile-ttl: 在設置了超時時間的key中優先刪除剩余時間(time to live,TTL)的key

 

場景:

數據庫中有2000w數據,而redis中只有100w數據,如何保證redis中存放的都是熱點數據?

 

方案:

限定redis占用的內存,redis會根據自身數據淘汰策略,留下熱數據到內存。所以可以計算100w數據大約占用的內存,

然后設置一下redis內存限制即可,並將淘汰策略設置為allkeys-lru或者volatile-lru.

 

設置redis最大占用內存:

打開redis配置文件,設置maxmemory參數,maxmemory是bytes字節類型哦!

maxmemory 268435456

設置過期策略:

maxmemory-policy volatile-lru

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM