您好,登錄后才能下訂單哦!
redis內(nèi)存滿(mǎn)了解決方法:
1,增加內(nèi)存;
2,使用內(nèi)存淘汰策略。
3,Redis集群。
下面我們就來(lái)重點(diǎn)介紹一下第2、3種解決方法:
第二種:
我們知道,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ī)則。
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集群有三種方式:客戶(hù)端分片、代理分片、RedisCluster
客戶(hù)端分片
通過(guò)業(yè)務(wù)代碼自己實(shí)現(xiàn)路由
優(yōu)勢(shì):可以自己控制分片算法、性能比代理的好
劣勢(shì):維護(hù)成本高、擴(kuò)容/縮容等運(yùn)維操作都需要自己研發(fā)
代理分片
代理程序接收到來(lái)自業(yè)務(wù)程序的數(shù)據(jù)請(qǐng)求,根據(jù)路由規(guī)則,將這些請(qǐng)求分發(fā)給正確的Redis實(shí)例并返回給業(yè)務(wù)程序。使用類(lèi)似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)。
Redis Cluster
優(yōu)勢(shì):官方集群解決方案、無(wú)中心節(jié)點(diǎn),和客戶(hù)端直連,性能較好
劣勢(shì):方案太重、無(wú)法平滑擴(kuò)容/縮容,需要執(zhí)行相應(yīng)的腳本,不方便、太新,沒(méi)有相應(yīng)成熟的解決案例
以上就是redis內(nèi)存滿(mǎn)了解決方法的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注億速云其它相關(guān)文章!
免責(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)容。