這篇文章將為大家詳細(xì)講解有關(guān)redis讀寫(xiě)分離的優(yōu)勢(shì),小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
創(chuàng)新互聯(lián)公司長(zhǎng)期為數(shù)千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為中原企業(yè)提供專業(yè)的網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì),中原網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。Redis讀寫(xiě)分離優(yōu)勢(shì)
透明兼容
讀寫(xiě)分離和普通集群規(guī)格一樣,都使用了redis-proxy做請(qǐng)求轉(zhuǎn)發(fā),多分片令使用存在一定的限制,但從主從升級(jí)單分片讀寫(xiě)分離,或者從集群升級(jí)到多分片的讀寫(xiě)分離集群可以做到完全兼容。
用戶和redis-proxy建立連接,redis-proxy會(huì)識(shí)別出客戶端連接發(fā)送過(guò)來(lái)的請(qǐng)求是讀還是寫(xiě),然后按照權(quán)重作負(fù)載均衡,將請(qǐng)求轉(zhuǎn)發(fā)到后端不同的DB節(jié)點(diǎn)中,寫(xiě)請(qǐng)求轉(zhuǎn)發(fā)給master,讀操作轉(zhuǎn)發(fā)給read-only replica(master默認(rèn)也提供讀,可以通過(guò)權(quán)重控制)。
用戶只需要購(gòu)買(mǎi)讀寫(xiě)分離規(guī)格的實(shí)例,直接使用任何客戶端即可直接使用,業(yè)務(wù)不用做任何修改就可以開(kāi)始享受讀寫(xiě)分離服務(wù)帶來(lái)的巨大性能提升,接入成本幾乎為0。
高可用
高可用模塊(HA)監(jiān)控所有DB節(jié)點(diǎn)的健康狀態(tài),為整個(gè)實(shí)例的可用性保駕護(hù)航。master宕機(jī)時(shí)自動(dòng)切換到新主。如果某個(gè)read-only replica宕機(jī),HA也能及時(shí)感知,然后重搭一個(gè)新的read-only replica,下線宕機(jī)節(jié)點(diǎn)。
除HA之外,redis-proxy也能實(shí)時(shí)感知每個(gè)read-only replica的狀態(tài)。在某個(gè)read-only replica異常期間,redis-proxy會(huì)自動(dòng)降低這個(gè)節(jié)點(diǎn)的權(quán)重,如果發(fā)現(xiàn)某個(gè)read-only replica連續(xù)失敗超過(guò)一定次數(shù)以后,會(huì)暫時(shí)屏蔽異常節(jié)點(diǎn),直到異常消失以后才會(huì)恢復(fù)其正常權(quán)重。
redis-proxy和HA一起做到盡量減少業(yè)務(wù)對(duì)后端異常的感知,提高服務(wù)可用性。
高性能
對(duì)于讀多寫(xiě)少的業(yè)務(wù)場(chǎng)景,直接使用集群版本往往不是最合適的方案,現(xiàn)在讀寫(xiě)分離提供了更多的選擇,業(yè)務(wù)可以根據(jù)場(chǎng)景選擇最適合的規(guī)格,充分利用每一個(gè)read-only replica的資源。
目前單shard對(duì)外售賣(mài)1 master + 1/3/5 read-only replica多種規(guī)格(如果有更大的需求可以提工單反饋),提供60萬(wàn)QPS和192 MB/s的服務(wù)能力,在完全兼容所有命令的情況下突破單機(jī)的資源限制。
后續(xù)將去掉規(guī)格限制,讓用戶根據(jù)業(yè)務(wù)流量隨時(shí)自由的增加或減少read-only replica數(shù)量。
關(guān)于redis讀寫(xiě)分離的優(yōu)勢(shì)就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。