您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關保證redis中數據都是熱點數據的方法,文章內容質量較高,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
當redis使用的內存超過了設置的最大內存時,會觸發redis的key淘汰機制,在redis 3.0中有6種淘汰策略:
noeviction: 不刪除策略。當達到最大內存限制時, 如果需要使用更多內存,則直接返回錯誤信息。(redis默認淘汰策略)
allkeys-lru: 在所有key中優先刪除最近最少使用(less recently used ,LRU) 的 key。
allkeys-random: 在所有key中隨機刪除一部分 key。
volatile-lru: 在設置了超時時間(expire )的key中優先刪除最近最少使用(less recently used ,LRU) 的 key。
volatile-random: 在設置了超時時間(expire)的key中隨機刪除一部分 key。
volatile-ttl: 在設置了超時時間(expire )的key中優先刪除剩余時間(time to live,TTL) 短的key。
場景:
數據庫中有1000w的數據,而redis中只有50w數據,如何保證redis中10w數據都是熱點數據?
方案:
限定 Redis 占用的內存,Redis 會根據自身數據淘汰策略,留下熱數據到內存。所以,計算一下 50W 數據大約占用的內存,然后設置一下 Redis 內存限制即可,并將淘汰策略為volatile-lru或者allkeys-lru。
設置Redis最大占用內存:
打開redis配置文件,設置maxmemory參數,maxmemory是bytes字節類型
# In short... if you have slaves attached it is suggested that you set a lower # limit for maxmemory so that there is some free RAM on the system for slave # output buffers (but this is not needed if the policy is 'noeviction'). # # maxmemory <bytes> maxmemory 268435456
設置過期策略:
maxmemory-policy volatile-lru
以上就是保證redis中數據都是熱點數據的方法,看完之后是否有所收獲呢?如果想了解更多相關內容,歡迎關注億速云行業資訊,感謝各位的閱讀。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。