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

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

