chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文解析Redis讀寫(xiě)分離技術(shù)

西西 ? 來(lái)源:Java小寒 ? 作者:今日頭條 ? 2020-03-01 15:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

云數(shù)據(jù)庫(kù)Redis版不管主從版還是集群規(guī)格,replica作為備庫(kù)不對(duì)外提供服務(wù),只有在發(fā)生HA的時(shí)候,replica提升為master后才承擔(dān)讀寫(xiě)流量。這種架構(gòu)讀寫(xiě)請(qǐng)求都在master上完成,一致性較高,但性能受到master數(shù)量的限制。經(jīng)常有用戶數(shù)據(jù)較少,但因?yàn)榱髁炕蛘卟l(fā)太高而不得不升級(jí)到更大的集群規(guī)格。

背景

云數(shù)據(jù)庫(kù)Redis版不管主從版還是集群規(guī)格,replica作為備庫(kù)不對(duì)外提供服務(wù),只有在發(fā)生HA的時(shí)候,replica提升為master后才承擔(dān)讀寫(xiě)流量。這種架構(gòu)讀寫(xiě)請(qǐng)求都在master上完成,一致性較高,但性能受到master數(shù)量的限制。經(jīng)常有用戶數(shù)據(jù)較少,但因?yàn)榱髁炕蛘卟l(fā)太高而不得不升級(jí)到更大的集群規(guī)格。

為滿足讀多寫(xiě)少的業(yè)務(wù)場(chǎng)景,最大化節(jié)約用戶成本,云數(shù)據(jù)庫(kù)Redis版推出了讀寫(xiě)分離規(guī)格,為用戶提供透明、高可用、高性能、高靈活的讀寫(xiě)分離服務(wù)。

架構(gòu)

Redis集群模式有redis-proxy、master、replica、HA等幾個(gè)角色。在讀寫(xiě)分離實(shí)例中,新增read-only replica角色來(lái)承擔(dān)讀流量,replica作為熱備不提供服務(wù),架構(gòu)上保持對(duì)現(xiàn)有集群規(guī)格的兼容性。redis-proxy按權(quán)重將讀寫(xiě)請(qǐng)求轉(zhuǎn)發(fā)到master或者某個(gè)read-only replica上;HA負(fù)責(zé)監(jiān)控DB節(jié)點(diǎn)的健康狀態(tài),異常時(shí)發(fā)起主從切換或重搭read-only replica,并更新路由。

一般來(lái)說(shuō),根據(jù)master和read-only replica的數(shù)據(jù)同步方式,可以分為兩種架構(gòu):星型復(fù)制和鏈?zhǔn)綇?fù)制。

星型復(fù)制

星型復(fù)制就是將所有的read-only replica直接和master保持同步,每個(gè)read-only replica之間相互獨(dú)立,任何一個(gè)節(jié)點(diǎn)異常不影響到其他節(jié)點(diǎn),同時(shí)因?yàn)閺?fù)制鏈比較短,read-only replica上的復(fù)制延遲比較小。

Redis是單進(jìn)程單線程模型,主從之間的數(shù)據(jù)復(fù)制也在主線程中處理,read-only replica數(shù)量越多,數(shù)據(jù)同步對(duì)master的CPU消耗就越嚴(yán)重,集群的寫(xiě)入性能會(huì)隨著read-only replica的增加而降低。此外,星型架構(gòu)會(huì)讓master的出口帶寬隨著read-only replica的增加而成倍增長(zhǎng)。Master上較高的CPU和網(wǎng)絡(luò)負(fù)載會(huì)抵消掉星型復(fù)制延遲較低的優(yōu)勢(shì),因此,星型復(fù)制架構(gòu)會(huì)帶來(lái)比較嚴(yán)重的擴(kuò)展問(wèn)題,整個(gè)集群的性能會(huì)受限于master。

緩存成神路:Redis讀寫(xiě)分離難以理解?一文解析Redis讀寫(xiě)分離技術(shù)

鏈?zhǔn)綇?fù)制

鏈?zhǔn)綇?fù)制將所有的read-only replica組織成一個(gè)復(fù)制鏈,如下圖所示,master只需要將數(shù)據(jù)同步給replica和復(fù)制鏈上的第一個(gè)read-only replica。

鏈?zhǔn)綇?fù)制解決了星型復(fù)制的擴(kuò)展問(wèn)題,理論上可以無(wú)限增加read-only replica的數(shù)量,隨著節(jié)點(diǎn)的增加整個(gè)集群的性能也可以基本上呈線性增長(zhǎng)。

鏈?zhǔn)綇?fù)制的架構(gòu)下,復(fù)制鏈越長(zhǎng),復(fù)制鏈末端的read-only replica和master之間的同步延遲就越大,考慮到讀寫(xiě)分離主要使用在對(duì)一致性要求不高的場(chǎng)景下,這個(gè)缺點(diǎn)一般可以接受。但是如果復(fù)制鏈中的某個(gè)節(jié)點(diǎn)異常,會(huì)導(dǎo)致下游的所有節(jié)點(diǎn)數(shù)據(jù)都會(huì)大幅滯后。更加嚴(yán)重的是這可能帶來(lái)全量同步,并且全量同步將一直傳遞到復(fù)制鏈的末端,這會(huì)對(duì)服務(wù)帶來(lái)一定的影響。為了解決這個(gè)問(wèn)題,讀寫(xiě)分離的Redis都使用阿里云優(yōu)化后的binlog復(fù)制版本,最大程度的降低全量同步的概率。

緩存成神路:Redis讀寫(xiě)分離難以理解?一文解析Redis讀寫(xiě)分離技術(shù)

結(jié)合上述的討論和比較,Redis讀寫(xiě)分離選擇鏈?zhǔn)綇?fù)制的架構(gòu)。

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)買讀寫(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ì)外售賣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ù)量。

緩存成神路:Redis讀寫(xiě)分離難以理解?一文解析Redis讀寫(xiě)分離技術(shù)

后續(xù)

Redis主從異步復(fù)制,從read-only replica中可能讀到舊的數(shù)據(jù),使用讀寫(xiě)分離需要業(yè)務(wù)可以容忍一定程度的數(shù)據(jù)不一致,后續(xù)將會(huì)給客戶更靈活的配置和更大的自由,比如配置可以容忍的最大延遲時(shí)間。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Redis
    +關(guān)注

    關(guān)注

    0

    文章

    387

    瀏覽量

    11445
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Python如何使用MySQL 8.2讀寫(xiě)分離?

    如您所知,MySQL 8.2 發(fā)布了最令人期待的功能之讀寫(xiě)分離。
    的頭像 發(fā)表于 11-22 09:39 ?766次閱讀
    Python如何使用MySQL 8.2<b class='flag-5'>讀寫(xiě)</b><b class='flag-5'>分離</b>?

    【2018開(kāi)年知識(shí)盛會(huì)】15位大咖直播分享,全方位解析NoSQL數(shù)據(jù)庫(kù)

    集群及讀寫(xiě)分離規(guī)格等,并且架構(gòu)全面支持Memcache協(xié)議,產(chǎn)品專家將深度解讀云數(shù)據(jù)庫(kù)Redis在游戲等行業(yè)中的應(yīng)用,技術(shù)專家將深度解讀讀寫(xiě)
    發(fā)表于 01-15 14:53

    企業(yè)打開(kāi)Redis的正確方式,來(lái)自阿里云云數(shù)據(jù)庫(kù)團(tuán)隊(duì)的解讀

    的送禮物、討論評(píng)論等大部分?jǐn)?shù)據(jù)操作都適合非關(guān)系型數(shù)據(jù)庫(kù),而僅有充值等少量場(chǎng)景需要關(guān)系性數(shù)據(jù)庫(kù),因此重度依賴Redis數(shù)據(jù)庫(kù),相應(yīng)地則有“穩(wěn)定性高于切、低內(nèi)存高QPS、連接數(shù)較大”的技術(shù)要求。相應(yīng)
    發(fā)表于 02-07 14:06

    Mycat的讀寫(xiě)分離實(shí)現(xiàn)

    Mycat基于主從復(fù)制實(shí)現(xiàn)讀寫(xiě)分離
    發(fā)表于 04-17 06:36

    labview讀寫(xiě)操作REDIS

    本帖最后由 SevenLi8408 于 2022-9-15 08:07 編輯 分享個(gè)好用的非關(guān)系型緩存數(shù)據(jù)庫(kù)的使用方法。REDIS桌面管理軟件https://github.com
    發(fā)表于 08-15 10:32

    ddr3的讀寫(xiě)分離方法有哪些?

    DDR3是目前DDR的主流產(chǎn)品,DDR3的讀寫(xiě)分離作為DDR最基本也是最常用的部分,本文主要闡述DDR3讀寫(xiě)分離的方法。最開(kāi)始的DDR, 芯片采用的是TSOP封裝,管腳露在芯片兩側(cè)的,
    的頭像 發(fā)表于 11-06 13:44 ?9132次閱讀
    ddr3的<b class='flag-5'>讀寫(xiě)</b><b class='flag-5'>分離</b>方法有哪些?

    揭秘阿里云Redis全球多活產(chǎn)品

    ,實(shí)現(xiàn)了string、counter、hash、set、zset、hyperloglog、geo幾種數(shù)據(jù)類型的最終致性.功能豐富多活支持Redis標(biāo)準(zhǔn)版,集群版和讀寫(xiě)分離版。在多活同
    發(fā)表于 08-30 14:40 ?303次閱讀

    理解 Redis 的核心原理與技術(shù)

    、Redis 基礎(chǔ)數(shù)據(jù)結(jié)構(gòu) 1. String Redis 里的字符串是動(dòng)態(tài)字符串,會(huì)根據(jù)實(shí)際情況動(dòng)態(tài)調(diào)整。類似于 Go 里面的切片-slice,如果長(zhǎng)度不夠則自動(dòng)擴(kuò)容。至于如何擴(kuò)容,方法大致如下
    的頭像 發(fā)表于 05-28 10:49 ?1725次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b>理解 <b class='flag-5'>Redis</b> 的核心原理與<b class='flag-5'>技術(shù)</b>

    讀寫(xiě)分離的兩種實(shí)現(xiàn)方式

    1. 引言 讀寫(xiě)分離要做的事情就是對(duì)于條SQL該選擇哪個(gè)數(shù)據(jù)庫(kù)去執(zhí)行,至于誰(shuí)來(lái)做選擇數(shù)據(jù)庫(kù)這件事兒,無(wú)非兩個(gè),要么中間件幫我們做,要么程序自己做。因此,般來(lái)講,
    的頭像 發(fā)表于 09-29 14:51 ?1.4w次閱讀

    讀懂Redis

    我們通常使用 Redis 的方式是,發(fā)送命令,命令排隊(duì),Redis 執(zhí)行,然后返回結(jié)果,這個(gè)過(guò)程稱為Round trip time(簡(jiǎn)稱RTT, 往返時(shí)間)。
    的頭像 發(fā)表于 11-01 09:15 ?1275次閱讀

    Redis的主從、哨兵、Redis Cluster集群

    主從。 1.1 Redsi主從概念 Redis主從模式,就是部署多臺(tái)Redis服務(wù)器,有主庫(kù)和從庫(kù),它們之間通過(guò)主從復(fù)制,以保證數(shù)據(jù)副本的致。 主從庫(kù)之間采用的是 讀寫(xiě)
    的頭像 發(fā)表于 06-12 14:58 ?1092次閱讀
    <b class='flag-5'>Redis</b>的主從、哨兵、<b class='flag-5'>Redis</b> Cluster集群

    闡述DDR3讀寫(xiě)分離的方法

    DDR3是2007年推出的,預(yù)計(jì)2022年DDR3的市場(chǎng)份額將降至8%或以下。但原理都是樣的,DDR3的讀寫(xiě)分離作為DDR最基本也是最常用的部分,本文主要闡述DDR3讀寫(xiě)
    的頭像 發(fā)表于 10-18 16:03 ?1498次閱讀
    闡述DDR3<b class='flag-5'>讀寫(xiě)</b><b class='flag-5'>分離</b>的方法

    讀寫(xiě)分離解決什么問(wèn)題

    讀寫(xiě)分離種數(shù)據(jù)庫(kù)架構(gòu)設(shè)計(jì)策略,主要解決數(shù)據(jù)庫(kù)在高并發(fā)場(chǎng)景下的讀寫(xiě)性能瓶頸問(wèn)題。在這種架構(gòu)中,數(shù)據(jù)庫(kù)的讀操作和寫(xiě)操作被分離到不同的服務(wù)器上
    的頭像 發(fā)表于 07-12 09:47 ?836次閱讀

    讀寫(xiě)分離怎么保證數(shù)據(jù)同步

    讀寫(xiě)分離種常見(jiàn)的數(shù)據(jù)庫(kù)架構(gòu)設(shè)計(jì),用于提高數(shù)據(jù)庫(kù)的并發(fā)處理能力。在讀寫(xiě)分離架構(gòu)中,數(shù)據(jù)庫(kù)的讀操作和寫(xiě)操作被
    的頭像 發(fā)表于 07-12 09:49 ?1628次閱讀

    配置MySQL主從復(fù)制和讀寫(xiě)分離

    配置MySQL主從復(fù)制和讀寫(xiě)分離
    的頭像 發(fā)表于 10-23 11:44 ?822次閱讀
    配置MySQL主從復(fù)制和<b class='flag-5'>讀寫(xiě)</b><b class='flag-5'>分離</b>