這篇文章主要介紹redis內(nèi)存滿了的解決方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供中牟網(wǎng)站建設(shè)、中牟做網(wǎng)站、中牟網(wǎng)站設(shè)計(jì)、中牟網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、中牟企業(yè)網(wǎng)站模板建站服務(wù),十多年中牟做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
redis內(nèi)存滿了解決方法:
1,增加內(nèi)存。
2,使用內(nèi)存淘汰策略。
3,Redis集群。
重點(diǎn)介紹下2、3:
第二點(diǎn):
我們知道,redis設(shè)置配置文件的maxmemory參數(shù),可以控制其最大可用內(nèi)存大?。ㄗ止?jié))。
那么當(dāng)所需內(nèi)存,超過(guò)maxmemory怎么辦?
這個(gè)時(shí)候就該配置文件中的maxmemory-policy出場(chǎng)了。
其默認(rèn)值是noeviction。
下面我將列出當(dāng)可用內(nèi)存不足時(shí),刪除redis鍵具有的淘汰規(guī)則。
規(guī)則說(shuō)明:
1、volatile-lru
使用LRU算法刪除一個(gè)鍵(只對(duì)設(shè)置了生存時(shí)間的鍵)
2、allkeys-lru
使用LRU算法刪除一個(gè)鍵
3、volatile-random
隨機(jī)刪除一個(gè)鍵(只對(duì)設(shè)置了生存時(shí)間的鍵)
4、allkeys-random
隨機(jī)刪除一個(gè)鍵
5、volatile-ttl
刪除生存時(shí)間最近的一個(gè)鍵
6、noeviction
不刪除鍵,只返回錯(cuò)誤
LRU算法,least RecentlyUsed,最近最少使用算法。也就是說(shuō)默認(rèn)刪除最近最少使用的鍵。
但是一定要注意一點(diǎn)!redis中并不會(huì)準(zhǔn)確的刪除所有鍵中最近最少使用的鍵,而是隨機(jī)抽取3個(gè)鍵,刪除這三個(gè)鍵中最近最少使用的鍵。
那么3這個(gè)數(shù)字也是可以設(shè)置的,對(duì)應(yīng)位置是配置文件中的maxmeory-samples.
三、集群怎么做
Redis僅支持單實(shí)例,內(nèi)存一般最多10~20GB。對(duì)于內(nèi)存動(dòng)輒100~200GB的系統(tǒng),就需要通過(guò)集群來(lái)支持了。
Redis集群有三種方式:客戶端分片、代理分片、RedisCluster(在之后一篇文章詳細(xì)說(shuō)一下。)
1、客戶端分片
通過(guò)業(yè)務(wù)代碼自己實(shí)現(xiàn)路由
優(yōu)勢(shì):可以自己控制分片算法、性能比代理的好
劣勢(shì):維護(hù)成本高、擴(kuò)容/縮容等運(yùn)維操作都需要自己研發(fā)
2、代理分片
代理程序接收到來(lái)自業(yè)務(wù)程序的數(shù)據(jù)請(qǐng)求,根據(jù)路由規(guī)則,將這些請(qǐng)求分發(fā)給正確的Redis實(shí)例并返回給業(yè)務(wù)程序。使用類似Twemproxy、Codis等中間件實(shí)現(xiàn)。
優(yōu)勢(shì):運(yùn)維方便、程序不用關(guān)心如何鏈接Redis實(shí)例
劣勢(shì):會(huì)帶來(lái)性能消耗(大概20%)、無(wú)法平滑擴(kuò)容/縮容,需要執(zhí)行腳本遷移數(shù)據(jù),不方便(Codis在Twemproxy基礎(chǔ)上優(yōu)化并實(shí)現(xiàn)了預(yù)分片來(lái)達(dá)到Auto Rebalance)。
3、Redis Cluster
優(yōu)勢(shì):官方集群解決方案、無(wú)中心節(jié)點(diǎn),和客戶端直連,性能較好
劣勢(shì):方案太重、無(wú)法平滑擴(kuò)容/縮容,需要執(zhí)行相應(yīng)的腳本,不方便、太新,沒(méi)有相應(yīng)成熟的解決案例
以上是redis內(nèi)存滿了的解決方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!