Redis 6種淘汰機(jī)制,看看你知道哪些?
redis是個(gè)基于內(nèi)存的緩存數(shù)據(jù)庫,既然是基于內(nèi)存的,那肯定就會(huì)有存滿的時(shí)候
如果真的存滿了,再有新的數(shù)據(jù)過來肯定就存不進(jìn)去了
此時(shí)redis會(huì)執(zhí)行既定的一些淘汰策略,本文大概講一下redis六種淘汰策略
1.noeviction(默認(rèn)策略):對于寫請求不再提供服務(wù),直接返回錯(cuò)誤(DEL請求和部分特殊請求除外)
2.allkeys-lru:從所有key中使用LRU算法進(jìn)行淘汰(LRU算法:即最近最少使用算法)
3.volatile-lru:從設(shè)置了過期時(shí)間的key中使用LRU算法進(jìn)行淘汰
4.allkeys-random:從所有key中隨機(jī)淘汰數(shù)據(jù)
5.volatile-random:從設(shè)置了過期時(shí)間的key中隨機(jī)淘汰
6.volatile-ttl:在設(shè)置了過期時(shí)間的key中,淘汰過期時(shí)間剩余最短的
當(dāng)使用volatile-lru、volatile-random、volatile-ttl這三種策略時(shí),如果沒有key可以被淘汰,則和noeviction一樣返回錯(cuò)誤
1、獲取當(dāng)前內(nèi)存淘汰策略:
127.0.0.1:6379> config get maxmemory-policy可以看到當(dāng)前使用的默認(rèn)的noeviction策略
2、獲取Redis能使用的最大內(nèi)存大小
127.0.0.1:6379> config get maxmemory如果不設(shè)置最大內(nèi)存大小或者設(shè)置最大內(nèi)存大小為0,在64位操作系統(tǒng)下不限制內(nèi)存大小,在32位操作系統(tǒng)下最多使用3GB內(nèi)存。32 位的機(jī)器最大只支持 4GB 的內(nèi)存,而系統(tǒng)本身就需要一定的內(nèi)存資源來支持運(yùn)行,所以 32 位機(jī)器限制最大 3 GB 的可用內(nèi)存
3、設(shè)置淘汰策略
通過配置文件設(shè)置淘汰策略(修改redis.conf文件):
maxmemory-policy allkeys-lru通過命令修改淘汰策略:
127.0.0.1:6379> config set maxmemory-policy allkeys-lru4、設(shè)置Redis最大占用內(nèi)存大小
#設(shè)置Redis最大占用內(nèi)存大小為100M
127.0.0.1:6379> config set maxmemory 100mb來源:blog.csdn.net/ju_362204801/article/details/114441137
PS:防止找不到本篇文章,可以收藏點(diǎn)贊,方便翻閱查找哦。
胖虎聯(lián)合一線大廠朋友花費(fèi)8個(gè)月的時(shí)間,錄制了一份Java入門+進(jìn)階視頻教程
課程特色:
總共88G,時(shí)常高達(dá)365小時(shí),覆蓋所有主流技術(shù)棧
均為同一人錄制,不是東拼西湊的
對標(biāo)線下T0級別的培訓(xùn)課,講師大廠架構(gòu)師,多年授課經(jīng)驗(yàn),通俗易懂
內(nèi)容豐富,每一個(gè)技術(shù)點(diǎn)除了視頻,還有課堂源碼、筆記、PPT、圖解
五大實(shí)戰(zhàn)項(xiàng)目(視頻+源碼+筆記+SQL+軟件)
一次付費(fèi),持續(xù)更新,永無二次費(fèi)用
點(diǎn)擊下方超鏈接查看詳情

(或者點(diǎn)擊文末閱讀原文):

