溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

保證redis中數(shù)據(jù)都是熱點(diǎn)數(shù)據(jù)的方法

發(fā)布時(shí)間:2020-06-23 11:41:59 來(lái)源:億速云 閱讀:1014 作者:Leah 欄目:關(guān)系型數(shù)據(jù)庫(kù)

這篇文章將為大家詳細(xì)講解有關(guān)保證redis中數(shù)據(jù)都是熱點(diǎn)數(shù)據(jù)的方法,文章內(nèi)容質(zhì)量較高,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

當(dāng)redis使用的內(nèi)存超過(guò)了設(shè)置的最大內(nèi)存時(shí),會(huì)觸發(fā)redis的key淘汰機(jī)制,在redis 3.0中有6種淘汰策略:

noeviction: 不刪除策略。當(dāng)達(dá)到最大內(nèi)存限制時(shí), 如果需要使用更多內(nèi)存,則直接返回錯(cuò)誤信息。(redis默認(rèn)淘汰策略)

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

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

volatile-lru: 在設(shè)置了超時(shí)時(shí)間(expire )的key中優(yōu)先刪除最近最少使用(less recently used ,LRU) 的 key。

volatile-random: 在設(shè)置了超時(shí)時(shí)間(expire)的key中隨機(jī)刪除一部分 key。

volatile-ttl: 在設(shè)置了超時(shí)時(shí)間(expire )的key中優(yōu)先刪除剩余時(shí)間(time to live,TTL) 短的key。

場(chǎng)景:

數(shù)據(jù)庫(kù)中有1000w的數(shù)據(jù),而redis中只有50w數(shù)據(jù),如何保證redis中10w數(shù)據(jù)都是熱點(diǎn)數(shù)據(jù)?

方案:

限定 Redis 占用的內(nèi)存,Redis 會(huì)根據(jù)自身數(shù)據(jù)淘汰策略,留下熱數(shù)據(jù)到內(nèi)存。所以,計(jì)算一下 50W 數(shù)據(jù)大約占用的內(nèi)存,然后設(shè)置一下 Redis 內(nèi)存限制即可,并將淘汰策略為volatile-lru或者allkeys-lru。

設(shè)置Redis最大占用內(nèi)存:

打開(kāi)redis配置文件,設(shè)置maxmemory參數(shù),maxmemory是bytes字節(jié)類(lèi)型

# 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

設(shè)置過(guò)期策略:

maxmemory-policy volatile-lru

以上就是保證redis中數(shù)據(jù)都是熱點(diǎn)數(shù)據(jù)的方法,看完之后是否有所收獲呢?如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊,感謝各位的閱讀。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI