溫馨提示×

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

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

redis如何擴(kuò)容

發(fā)布時(shí)間:2020-09-23 13:41:07 來源:億速云 閱讀:286 作者:小新 欄目:關(guān)系型數(shù)據(jù)庫(kù)

這篇文章主要介紹了redis如何擴(kuò)容,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

方案一:

首先想到的是,增加Redis服務(wù)器的數(shù)量,在客戶端對(duì)存儲(chǔ)的key進(jìn)行hash運(yùn)算,存入不同的Redis服務(wù)器中,讀取時(shí),也進(jìn)行相同的hash運(yùn)算,找到對(duì)應(yīng)的Redis服務(wù)器,可以解決問題,但是不好的地方:

第一,客戶端要改動(dòng)代碼;

第二、需要客戶端記住所有的Redis服務(wù)器的地址;

這個(gè)方案可以使用,但能不能不用改動(dòng)代碼就能實(shí)現(xiàn)擴(kuò)容呢?

方案二:

搭建一個(gè)集群,由于Redis服務(wù)器使用的版本低于3.0,不支持集群,只能通過使用代理,就想到了有名的Redis代理twemproxy。

twemproxy的性能也是杠杠滴,雖然是代理,但它對(duì)訪問性能的影響非常小,連Redis作者都推薦它。

twemproxy使用方便,對(duì)于一個(gè)新手來說,不到一個(gè)小時(shí)就能學(xué)會(huì)使用,而且關(guān)鍵是不用改動(dòng)客戶端代碼,幾乎支持所有的Redis命令和管道操作,只需要改下客戶端的配置文件中配置的Redis的IP和PORT,由原來的Redis的IP和Port改成twemproxy服務(wù)的IP和PORT。

客戶端不需要考慮hash的問題,這些twemproxy會(huì)做,客戶端就像操作一臺(tái)Redis一樣。

上面用了“幾乎”這個(gè)詞,因?yàn)橛行┟?,比?quot;keys *"就不支持

很快部署了好了twemproxy和后面跟著的四個(gè)Redis機(jī)器,壓測(cè)發(fā)現(xiàn),后面的四臺(tái)Redis的CPU使用率降下來了,但新問題來了,twemproxy也是單進(jìn)程的!性能瓶頸又跑到twemproxy上來了!

方案三:

對(duì)Redis的訪問分為寫和讀,類似生產(chǎn)者和消費(fèi)者, 再仔細(xì)分析,發(fā)現(xiàn)寫的少,讀的相對(duì)多些,這就可以將讀寫分離,寫的往主的寫,讀的從備的讀,遇到的情況恰好是讀和寫是兩個(gè)服務(wù),做到讀寫分離通過改下配置信息就可以很簡(jiǎn)單的做到,,這樣分散了主Redis的壓力。

這里對(duì)Redis的訪問壓力有好轉(zhuǎn),但不是長(zhǎng)久之計(jì),比如遇到舉辦活動(dòng), 數(shù)據(jù)量增大時(shí),還是會(huì)有性能的風(fēng)險(xiǎn)。

最終采用的方法是綜合方案二和三,如下圖所示:
redis如何擴(kuò)容

這種方法對(duì)現(xiàn)有的服務(wù)改動(dòng)最小,可以有效緩解redis壓力的問題

producer端和consumer端的twemproxy使用的hash算法要求一致,不然找不到key了。

如果把方案一也加進(jìn)來,會(huì)比較復(fù)雜,暫時(shí)用不到。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享redis如何擴(kuò)容內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,遇到問題就找億速云,詳細(xì)的解決方法等著你來學(xué)習(xí)!

向AI問一下細(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