<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

       

      1、復(fù)制過(guò)程

        復(fù)制過(guò)程大致分為6個(gè)過(guò)程:

        流程圖如下:

        

        1)保存主節(jié)點(diǎn)信息

          執(zhí)行slaveof后從節(jié)點(diǎn)只保存主節(jié)點(diǎn)的地址信息便直接返回,這時(shí)建立復(fù)制流程還沒(méi)有開(kāi)始,在從節(jié)點(diǎn)執(zhí)行info replication可以看到如下信息:

      master_host:xxx
      master_port:xxx
      master_link_status:down

          從統(tǒng)計(jì)信息可以看出,主節(jié)點(diǎn)的ip和port被保存下來(lái),但是主節(jié)點(diǎn)的連接狀態(tài)master_link_status是下線狀態(tài)。執(zhí)行slaveof后Redis會(huì)打印如下日志:

      SLAVE OF 127.0.0.1:6379 enabled (user request from 'id=65 addr=127.0.0.1:58090
      fd=5 name= age=11 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=
      32768 obl=0 oll=0 omem=0 events=r cmd=slaveof')

        2)從節(jié)點(diǎn)內(nèi)部通過(guò)每秒運(yùn)行的定時(shí)任務(wù)維護(hù)復(fù)制相關(guān)邏輯,當(dāng)定時(shí)任務(wù)發(fā)現(xiàn)存在新的主節(jié)點(diǎn)后,會(huì)嘗試與該節(jié)點(diǎn)建立網(wǎng)絡(luò)連接。從節(jié)點(diǎn)會(huì)建立一個(gè)socket套接字,專門用于接受主節(jié)點(diǎn)發(fā)送的復(fù)制命令。如連接成功,打印日志如下:

      * Connecting to MASTER 127.0.0.1:6379
      * MASTER <-> SLAVE sync started

          如果從節(jié)點(diǎn)無(wú)法建立連接,定時(shí)任務(wù)會(huì)無(wú)限重試直到連接成功或執(zhí)行slaveof no one取消復(fù)制。

          連接失敗,可以在從節(jié)點(diǎn)執(zhí)行info replication查看master_link_down_since_seconds指標(biāo),它會(huì)記錄與主節(jié)點(diǎn)連接失敗的系統(tǒng)時(shí)間。此時(shí)日志如下

      # Error condition on socket for SYNC: {socket_error_reason}

        3) 發(fā)送ping命令

          連接建立成功后從節(jié)點(diǎn)發(fā)送ping請(qǐng)求進(jìn)行首次通信,ping請(qǐng)求主要目的如下:

          - 檢測(cè)主從之間網(wǎng)絡(luò)套接字是否可用

          - 檢測(cè)主節(jié)點(diǎn)當(dāng)前是否可接受處理命令

          如果發(fā)送ping命令后,從節(jié)點(diǎn)沒(méi)有收到主節(jié)點(diǎn)的pong回復(fù)或者超時(shí),比如網(wǎng)絡(luò)超時(shí)或者主節(jié)點(diǎn)正在阻塞無(wú)法響應(yīng)命令,從節(jié)點(diǎn)會(huì)斷開(kāi)復(fù)制鏈接,下次定時(shí)任務(wù)時(shí)任務(wù)會(huì)重連。

          從節(jié)點(diǎn)與主節(jié)點(diǎn)建立連接流程如圖

          

          從節(jié)點(diǎn)發(fā)送ping命令流程

          

        4)權(quán)限驗(yàn)證

          如果主節(jié)點(diǎn)設(shè)置了requirepass參數(shù),則需要密碼驗(yàn)證,從節(jié)點(diǎn)必須配置masterauth參數(shù)保證與主節(jié)點(diǎn)相同的密碼才能通過(guò)驗(yàn)證;如果驗(yàn)證失敗復(fù)制將終止,從節(jié)點(diǎn)重新發(fā)起復(fù)制流程。

        5)同步數(shù)據(jù)集

          主從復(fù)制鏈接正常通信后,對(duì)于首次建立復(fù)制的場(chǎng)景,主節(jié)點(diǎn)會(huì)把持有的數(shù)據(jù)全部發(fā)送給從節(jié)點(diǎn),這部分是耗時(shí)最長(zhǎng)的步驟。Redis在2.8版本以后采用新復(fù)制命令psync進(jìn)行數(shù)據(jù)同步,原來(lái)的sync命令也同樣支持,為了新舊版本的兼容性。新同步劃分為兩種情況:全量同步和部分同步。

        6)命令持續(xù)復(fù)制

          當(dāng)主節(jié)點(diǎn)把當(dāng)前數(shù)據(jù)同步給從節(jié)點(diǎn)或,便完成了復(fù)制的建立流程,接下來(lái)主節(jié)點(diǎn)會(huì)持續(xù)地把寫(xiě)命令發(fā)送給從節(jié)點(diǎn),保證主從數(shù)據(jù)一致性。

       

      2、數(shù)據(jù)同步

        Redis在2.8及以上版本使用psync命令完成主從數(shù)據(jù)同步,同步過(guò)程分為全量復(fù)制和部分復(fù)制。

        全量復(fù)制:一般用于初次復(fù)制場(chǎng)景,Redis早期支持的復(fù)制功能只有全量復(fù)制,它會(huì)把從節(jié)點(diǎn)全部數(shù)據(jù)一次性發(fā)送給從節(jié)點(diǎn),當(dāng)數(shù)據(jù)較大時(shí),會(huì)對(duì)主從節(jié)點(diǎn)和網(wǎng)絡(luò)造成很大的開(kāi)銷。

        部分復(fù)制:用于處理在主從復(fù)制中因網(wǎng)絡(luò)閃斷等原因造成的數(shù)據(jù)丟失場(chǎng)景,當(dāng)從節(jié)點(diǎn)再次連上主節(jié)點(diǎn)后,如果條件允許,主節(jié)點(diǎn)會(huì)補(bǔ)發(fā)丟失數(shù)據(jù)給從節(jié)點(diǎn)。因?yàn)檠a(bǔ)發(fā)的數(shù)據(jù)遠(yuǎn)遠(yuǎn)小于全量數(shù)據(jù),可以有效避免全量復(fù)制的開(kāi)銷。

        部分復(fù)制是對(duì)老版復(fù)制的重大優(yōu)化,有效避免了不必要的全量復(fù)制操作。因此當(dāng)使用復(fù)制功能時(shí),盡量采用2.8以上版本的Redis。

        psync命令運(yùn)行需要以下組件支持:

        - 主從節(jié)點(diǎn)各自復(fù)制偏移量

        - 主節(jié)點(diǎn)復(fù)制積壓緩沖區(qū)

        - 主節(jié)點(diǎn)運(yùn)行id

        1)復(fù)制偏移量

          參與復(fù)制的主從節(jié)點(diǎn)都會(huì)維護(hù)自身復(fù)制偏移量,主節(jié)點(diǎn)處理完寫(xiě)入命令后,會(huì)把命令的字節(jié)長(zhǎng)度做累加記錄,統(tǒng)計(jì)信息在info replication中的master_repl_offset指標(biāo)中。

          從節(jié)點(diǎn)每秒上報(bào)自身的復(fù)制偏移量給主節(jié)點(diǎn),因此主節(jié)點(diǎn)也會(huì)保存從節(jié)點(diǎn)的復(fù)制偏移量。均可以通過(guò)info replication查看。

      127.0.0.1:6379> info replication
      # Replication
      role:master
      ...
      master_repl_offset:1055130
      
      ------------------------------------
      
      127.0.0.1:6379> info replication
      connected_slaves:1
      slave0:ip=127.0.0.1,port=6380,state=online,offset=1055214,lag=1

          從節(jié)點(diǎn)在接收到主節(jié)點(diǎn)發(fā)送的命令后,也會(huì)累加記錄自身的偏移量。統(tǒng)計(jì)信息在info replication中的slave_repl_offset指標(biāo)中:

      127.0.0.1:6380> info replication
      # Replication
      role:slave
      ...
      slave_repl_offset:1055214

          通過(guò)對(duì)比主從節(jié)點(diǎn)的復(fù)制偏移量,可以判斷主從節(jié)點(diǎn)數(shù)據(jù)是否一致。

          提示:可以通過(guò)主節(jié)點(diǎn)的統(tǒng)計(jì)信息,計(jì)算出master_repl_offset - slave_offset字節(jié)量,判斷主從節(jié)點(diǎn)復(fù)制相差的數(shù)據(jù)量,根據(jù)這個(gè)差值判定當(dāng)前復(fù)制的健康度。

        2)復(fù)制積壓緩沖區(qū)

          復(fù)制積壓緩沖區(qū)是保存在主節(jié)點(diǎn)上的一個(gè)固定長(zhǎng)度的隊(duì)列,默認(rèn)大小為1MB,當(dāng)主節(jié)點(diǎn)有連接的從節(jié)點(diǎn)時(shí)被創(chuàng)建,這時(shí)主節(jié)點(diǎn)響應(yīng)寫(xiě)命令時(shí),不但會(huì)把命令發(fā)送給從節(jié)點(diǎn),還會(huì)寫(xiě)入復(fù)制積壓緩沖區(qū)。

          由于緩沖區(qū)本質(zhì)上是先進(jìn)先出的定長(zhǎng)隊(duì)列,所以能實(shí)現(xiàn)保存最近已復(fù)制數(shù)據(jù)的功能,用于部分復(fù)制和復(fù)制命令丟失的數(shù)據(jù)補(bǔ)救。復(fù)制緩沖區(qū)相關(guān)統(tǒng)計(jì)信息也保存在主節(jié)點(diǎn)的info replication中:

      127.0.0.1:6379> info replication
      # Replication
      role:master
      ...
      repl_backlog_active:1 //  開(kāi)啟復(fù)制緩沖區(qū)
      repl_backlog_size:1048576 //  緩沖區(qū)最大長(zhǎng)度
      repl_backlog_first_byte_offset:7479 //  起始偏移量,計(jì)算當(dāng)前緩沖區(qū)可用范圍
      repl_backlog_histlen:1048576 //  已保存數(shù)據(jù)的有效長(zhǎng)度。

        3)主節(jié)點(diǎn)運(yùn)行ID

          每個(gè)Redis節(jié)點(diǎn)啟動(dòng)后都會(huì)動(dòng)態(tài)分配一個(gè)40位的十六進(jìn)制字符串作為運(yùn)行ID。運(yùn)行ID的主要作用是用來(lái)唯一識(shí)別Redis節(jié)點(diǎn),比如從節(jié)點(diǎn)保存主節(jié)點(diǎn)的運(yùn)行ID識(shí)別自己正在復(fù)制的是哪個(gè)主節(jié)點(diǎn)。如果只使用ip+port的方式識(shí)別主節(jié)點(diǎn),那么主節(jié)點(diǎn)重啟變更了整體數(shù)據(jù)集(如替換RDB/AOF),從節(jié)點(diǎn)再基于偏移量復(fù)制數(shù)據(jù)將是不安全的,因此當(dāng)運(yùn)行ID變化后從節(jié)點(diǎn)將做全量復(fù)制。可以運(yùn)行info server命令查看當(dāng)前節(jié)點(diǎn)的運(yùn)行ID:

      127.0.0.1:6379> info server
      # Server
      redis_version:3.0.7
      ...
      run_id:545f7c76183d0798a327591395b030000ee6def9

          需要注意的是Redis關(guān)閉再啟動(dòng)后,運(yùn)行ID會(huì)隨之改變。Redis不改變ID重啟,可以使用redis-cli debug reload

          注意:debug reload命令會(huì)阻塞當(dāng)前Redis節(jié)點(diǎn)主線程,阻塞期間會(huì)生成本地RDB快照并清空數(shù)據(jù)之后再加載RDB文件,因此對(duì)于大數(shù)據(jù)量的節(jié)點(diǎn)和無(wú)法容忍阻塞的應(yīng)用場(chǎng)景,謹(jǐn)慎使用。

        4)psync命令

          從節(jié)點(diǎn)使用psync命令完成部分復(fù)制和全量復(fù)制功能,命令格式:psync {runid} {offset}

          - runid:從節(jié)點(diǎn)所復(fù)制主節(jié)點(diǎn)的運(yùn)行id

          - offset:當(dāng)前從節(jié)點(diǎn)已復(fù)制的數(shù)據(jù)偏移量

          psync運(yùn)行流程

          

          流程說(shuō)明:

          1)從節(jié)點(diǎn)發(fā)送psync命令給主節(jié)點(diǎn),參數(shù)runid是當(dāng)前從節(jié)點(diǎn)保存的主節(jié)點(diǎn)運(yùn)行ID,參數(shù)offset是當(dāng)前從節(jié)點(diǎn)保存的復(fù)制偏移量,如果是第一次復(fù)制則為-1。

          2)主節(jié)點(diǎn)根據(jù)psync參數(shù)和自身數(shù)據(jù)情況決定響應(yīng)結(jié)果:

          - 如果回復(fù) FULLRESYNC {runid} {offset},那么從節(jié)點(diǎn)觸發(fā)全量復(fù)制

          - 如果回復(fù)CONTINUE,從節(jié)點(diǎn)將觸發(fā)部分復(fù)制流程

          - 如果回復(fù)ERR,說(shuō)明主節(jié)點(diǎn)版本低于2.8,無(wú)法識(shí)別psync命令,從節(jié)點(diǎn)將發(fā)送舊版的sync命令觸發(fā)全量復(fù)制流程。

       

      3、全量復(fù)制

        全量復(fù)制是Redis最早支持的復(fù)制方式,也是主從第一次建立復(fù)制時(shí)必須經(jīng)歷的階段。觸發(fā)全量復(fù)制的命令是sync和psync。

        全量復(fù)制流程:

        

        流程說(shuō)明:

        1)發(fā)送psync命令進(jìn)行數(shù)據(jù)同步,由于是第一次進(jìn)行復(fù)制,從節(jié)點(diǎn)沒(méi)有復(fù)制偏移量和主節(jié)點(diǎn)的運(yùn)行ID,所有發(fā)送psync-1

        2)主節(jié)點(diǎn)根據(jù)psync-1解析出當(dāng)前為全量復(fù)制,回復(fù)+FULLRESYNC響應(yīng)。

        3)從節(jié)點(diǎn)接收主節(jié)點(diǎn)的響應(yīng)數(shù)據(jù)保存運(yùn)行ID和偏移量offset,執(zhí)行到當(dāng)前步驟時(shí)從節(jié)點(diǎn)打印如下日志:

      Partial resynchronization not possible (no cached master)
      Full resync from master: 92d1cb14ff7ba97816216f7beb839efe036775b2:216789

        4)主節(jié)點(diǎn)執(zhí)行bgsave保存RDB文件到本地,主節(jié)點(diǎn)bgsave相關(guān)日志如下:

      M * Full resync requested by slave 127.0.0.1:6380
      M * Starting BGSAVE for SYNC with target: disk
      C * Background saving started by pid 32618
      C * RDB: 0 MB of memory used by copy-on-write
      M * Background saving terminated with success

        提示:Redis 3.0之后在輸出的日志開(kāi)頭會(huì)有MSC等標(biāo)識(shí),對(duì)應(yīng)的含義是:M=當(dāng)前為主節(jié)點(diǎn)日志,S=當(dāng)前為從節(jié)點(diǎn)日志,C=子進(jìn)程日志。

        save和bgsave的區(qū)別:save直接調(diào)用 rdbSave ,阻塞 Redis 主進(jìn)程,直到保存完成為止。在主進(jìn)程阻塞期間,服務(wù)器不能處理客戶端的任何請(qǐng)求。BGSAVE 則 fork 出一個(gè)子進(jìn)程,子進(jìn)程負(fù)責(zé)調(diào)用 rdbSave ,并在保存完成之后向主進(jìn)程發(fā)送信號(hào),通知保存已完成。因?yàn)?rdbSave 在子進(jìn)程被調(diào)用,所以 Redis 服務(wù)器在BGSAVE 執(zhí)行期間仍然可以繼續(xù)處理客戶端的請(qǐng)求。

        5)主節(jié)點(diǎn)發(fā)送RDB文件給從節(jié)點(diǎn),從節(jié)點(diǎn)把接收的RDB文件保存在本地并直接作為從節(jié)點(diǎn)的數(shù)據(jù)文件,接收完RDB后從節(jié)點(diǎn)可以在日志中查看主節(jié)點(diǎn)發(fā)送的數(shù)據(jù)量:

      16:24:03.057 * MASTER <-> SLAVE sync: receiving 24777842 bytes from master

        注意:對(duì)于數(shù)據(jù)量大的主節(jié)點(diǎn),比如生成的RDB文件超過(guò)6GB以上傳輸文件這一步操作非常耗時(shí),速度取決于主從節(jié)點(diǎn)之間的網(wǎng)絡(luò)帶寬,針對(duì)數(shù)據(jù)量較大的節(jié)點(diǎn),建議調(diào)大repl-timeout參數(shù)防止出現(xiàn)全量同步數(shù)據(jù)超時(shí)。

        關(guān)于無(wú)盤(pán)復(fù)制:為了降低主節(jié)點(diǎn)的磁盤(pán)開(kāi)銷,Redis支持無(wú)盤(pán)復(fù)制,生成的RDB文件不保存到硬盤(pán)而是直接通過(guò)網(wǎng)絡(luò)發(fā)送給從節(jié)點(diǎn),通過(guò)repl-diskless-sync參數(shù)控制,默認(rèn)關(guān)閉。無(wú)盤(pán)復(fù)制適用于主節(jié)點(diǎn)所在機(jī)器磁盤(pán)性能較差但網(wǎng)絡(luò)帶寬較充裕的場(chǎng)景。注意無(wú)盤(pán)復(fù)制目前依然處于試驗(yàn)階段。

        6)對(duì)于從節(jié)點(diǎn)開(kāi)始接收RDB快照到接收完成期間,主節(jié)點(diǎn)仍然響應(yīng)讀寫(xiě)命令,因此主節(jié)點(diǎn)會(huì)把這期間寫(xiě)命令數(shù)據(jù)保存在復(fù)制客戶端緩沖區(qū)內(nèi),當(dāng)從節(jié)點(diǎn)加載完RDB文件后,主節(jié)點(diǎn)再把緩沖區(qū)內(nèi)的數(shù)據(jù)發(fā)送給從節(jié)點(diǎn),保證主從之間數(shù)據(jù)一致性。如果主節(jié)點(diǎn)創(chuàng)建和傳輸RDB的時(shí)間過(guò)長(zhǎng),對(duì)于高流量寫(xiě)入場(chǎng)景非常容易造成主節(jié)點(diǎn)復(fù)制客戶端緩沖區(qū)溢出。默認(rèn)配置為client-output-buffer-limit slave 256MB 64MB 60.如果60秒內(nèi)緩沖區(qū)消耗持續(xù)大于64MB或者直接超過(guò)356MB時(shí),主節(jié)點(diǎn)將直接關(guān)閉復(fù)制客戶端連接,造成全量同步失敗,日志如下:

      M 27 May 12:13:33.669 # Client id=2 addr=127.0.0.1:24555 age=1 idle=1 flags=S
      qbuf=0 qbuf-free=0 obl=18824 oll=21382 omem=268442640 events=r cmd=psync
      scheduled to be closed ASAP for overcoming of output buffer limits.

        因此需要根據(jù)主節(jié)點(diǎn)數(shù)據(jù)量和寫(xiě)命令并發(fā)量調(diào)整client-output-buffer-limit slave配置,避免全量復(fù)制期間客戶端緩沖區(qū)溢出。

        7)從節(jié)點(diǎn)接收完主節(jié)點(diǎn)傳送來(lái)的全部數(shù)據(jù)后清空自身舊數(shù)據(jù),該步驟對(duì)應(yīng)如下日志:

      16:24:02.234 * MASTER <-> SLAVE sync: Flushing old data

        8)從節(jié)點(diǎn)清空數(shù)據(jù)后開(kāi)始加載RDB文件,對(duì)于較大的RDB依然耗時(shí)。對(duì)于讀寫(xiě)分離的場(chǎng)景,可以設(shè)置slave-serve-stale-data參數(shù)為no,關(guān)閉命令執(zhí)行,在完成同步前不響應(yīng)讀命令。

        9)從節(jié)點(diǎn)成功加載完RDB后,如果當(dāng)前節(jié)點(diǎn)開(kāi)啟了AOF持久化功能,它會(huì)立刻做bgrewriteaof操作,為了保證全量復(fù)制后AOF持久化文件立刻可用。

        RDB和AOF區(qū)別:RDB是將Redis某一時(shí)刻的數(shù)據(jù)持久化到磁盤(pán)上,類似于快照;AOF是將redis執(zhí)行過(guò)的所有寫(xiě)指令記錄下來(lái),在下次redis重新啟動(dòng)時(shí),只要把這些寫(xiě)指令從前到后再重復(fù)執(zhí)行一遍,就可以實(shí)現(xiàn)數(shù)據(jù)恢復(fù),默認(rèn)每秒鐘fsync一次。

       

      4、部分復(fù)制

        部分復(fù)制主要是Redis針對(duì)全量復(fù)制的過(guò)高開(kāi)銷做出的一種優(yōu)化措施,使用psync {runid} {offset}命令實(shí)現(xiàn),當(dāng)從節(jié)點(diǎn)正在復(fù)制主節(jié)點(diǎn)時(shí),如果出現(xiàn)異常情況,從節(jié)點(diǎn)要求補(bǔ)發(fā)丟失的命令數(shù)據(jù),如果主節(jié)點(diǎn)的復(fù)制積壓緩沖區(qū)內(nèi)存在這部分?jǐn)?shù)據(jù)則直接發(fā)送給從節(jié)點(diǎn),這樣就可以保持主從節(jié)點(diǎn)復(fù)制的一致性。

        部分復(fù)制過(guò)程:

        

        流程說(shuō)明:

        1)當(dāng)主從節(jié)點(diǎn)之間網(wǎng)絡(luò)出現(xiàn)中斷時(shí),如果超過(guò)repl-timeout時(shí)間,主節(jié)點(diǎn)會(huì)認(rèn)為從節(jié)點(diǎn)故障并中斷復(fù)制鏈接。

        2)主從連接中斷期間主節(jié)點(diǎn)依然響應(yīng)命令,寫(xiě)命令保存在復(fù)制積壓緩沖區(qū),默認(rèn)最大緩存1MB。

        3)當(dāng)主從節(jié)點(diǎn)網(wǎng)絡(luò)恢復(fù)后,從節(jié)點(diǎn)會(huì)再次連接主節(jié)點(diǎn)。

        4)連接恢復(fù)后,由于從節(jié)點(diǎn)保存了自身已復(fù)制的偏移量和主節(jié)點(diǎn)的運(yùn)行ID,因此會(huì)把他們當(dāng)做psync參數(shù)發(fā)送給主節(jié)點(diǎn),要求進(jìn)行部分復(fù)制操作。

        5)主節(jié)點(diǎn)接收到psync命令后首先核對(duì)參數(shù)runid,如果一致,說(shuō)明之前復(fù)制的是當(dāng)前主節(jié)點(diǎn),之后根據(jù)參數(shù)offset在自身復(fù)制積壓緩沖區(qū)查找,找到發(fā)送+CONTINUE響應(yīng)。

        6)主節(jié)點(diǎn)根據(jù)偏移量把復(fù)制積壓緩沖區(qū)里的數(shù)據(jù)發(fā)送給從節(jié)點(diǎn),保證主從復(fù)制進(jìn)入正常狀態(tài)。

       

      5、哨兵模式

        Redis Sentinel通過(guò)三個(gè)定時(shí)監(jiān)控任務(wù)完成對(duì)各個(gè)節(jié)點(diǎn)的發(fā)現(xiàn)和控制:

        1)每隔10秒,每個(gè)sentinel節(jié)點(diǎn)會(huì)向主節(jié)點(diǎn)和從節(jié)點(diǎn)發(fā)送info命令獲取最新的拓?fù)浣Y(jié)構(gòu)。通過(guò)解析info replication可以找到相應(yīng)的從節(jié)點(diǎn)。此定時(shí)任務(wù)作用于三個(gè)方面:

        - 通過(guò)向主節(jié)點(diǎn)執(zhí)行info命令,獲取從節(jié)點(diǎn)的信息。

        - 當(dāng)有新的節(jié)點(diǎn)加入時(shí),可以立刻感知出來(lái)。

        - 節(jié)點(diǎn)不可達(dá)或者故障轉(zhuǎn)移后,可以通過(guò)info命令實(shí)時(shí)更新節(jié)點(diǎn)拓?fù)湫畔ⅰ?/span>

        2)每隔2秒,每隔sentinel節(jié)點(diǎn)會(huì)向Redis數(shù)據(jù)節(jié)點(diǎn)的__sentinel__:hello頻道上發(fā)送該sentinel節(jié)點(diǎn)對(duì)于主節(jié)點(diǎn)的判斷以及當(dāng)前sentinel節(jié)點(diǎn)的信息,同時(shí)每隔sentinel節(jié)點(diǎn)也會(huì)訂閱該頻道,來(lái)了解其他sentinel節(jié)點(diǎn)以及他們對(duì)主節(jié)點(diǎn)的判斷,因此此任務(wù)主要作用如下:

        - 發(fā)現(xiàn)新的sentinel節(jié)點(diǎn)

        - sentinel節(jié)點(diǎn)之間交換主節(jié)點(diǎn)的狀態(tài),作為后面客觀下線以及領(lǐng)導(dǎo)者選舉的依據(jù)。

        3)每隔1秒,每隔sentinel節(jié)點(diǎn)會(huì)向主節(jié)點(diǎn)、從節(jié)點(diǎn)、其他sentinel節(jié)點(diǎn)發(fā)送一條ping命令做一次心跳檢測(cè)。

       

      6、Redis集群

      6.1 數(shù)據(jù)分布

        Redis Cluster把數(shù)據(jù)集劃分到多個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)負(fù)責(zé)整體數(shù)據(jù)的一個(gè)子集。Redis Cluster槽范圍是0~16383,槽是集群內(nèi)數(shù)據(jù)管理和遷移的基本單位。采用大范圍槽的主要目的是為了方便數(shù)據(jù)拆分和集群擴(kuò)展,每個(gè)節(jié)點(diǎn)會(huì)負(fù)責(zé)一定數(shù)量的槽。

      6.2 集群功能限制

        1)key批量操作支持有限。如mset、mget,目前只支持具有相同slot值的key執(zhí)行批量操作。對(duì)于映射為不同slot值的key不被支持。

        2)key事務(wù)操作支持有限。同理只支持多key在同一節(jié)點(diǎn)上的事務(wù)操作,當(dāng)多個(gè)key分布在不同的節(jié)點(diǎn)上時(shí)無(wú)法使用事務(wù)功能。

        3)key作為數(shù)據(jù)分區(qū)的最小粒度,因此不能將一個(gè)大的鍵值對(duì)象如hash、list等映射到不同的節(jié)點(diǎn)。

        4)不支持多數(shù)據(jù)空間。單機(jī)支持16個(gè)數(shù)據(jù)庫(kù),集群只有db0。

        5)復(fù)制結(jié)構(gòu)只支持一層。

      posted on 2018-12-14 16:43  杜先生的博客  閱讀(7396)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 国内精品视频一区二区三区八戒 | 麻豆国产va免费精品高清在线| 日韩高清视频 一区二区| 久久久久国产精品人妻| 欧美和黑人xxxx猛交视频| 亚洲国产韩国欧美在线| 敦化市| 美女自卫慰黄网站| 九九热在线免费视频精品 | 精品超清无码视频在线观看 | 日韩在线视频线观看一区| 元码人妻精品一区二区三区9| 性欧美VIDEOFREE高清大喷水| 国产日韩精品一区在线不卡| 欧美色欧美亚洲另类二区| 中文字幕乱码熟妇五十中出| 亚洲男女羞羞无遮挡久久丫| 人人妻人人妻人人片av | 亚洲国产午夜精品福利| 在线精品视频一区二区三四| 又长又粗又爽又高潮的视频| 麻豆aⅴ精品无码一区二区| 天堂V亚洲国产V第一次| 日韩淫片毛片视频免费看| 国产精品熟女一区二区不卡 | 欧美videos粗暴| 日本一区二区三深夜不卡| 久热视频这里只有精品6| 亚洲大尺度无码专区尤物| 国产精品午夜福利资源| 天堂а√8在线最新版在线| 国产在线国偷精品产拍| 成人综合婷婷国产精品久久蜜臀 | 超碰人人超碰人人| 人妻少妇精品视频三区二区| 亚洲国产精品男人的天堂| 亚洲中文字幕无码爆乳| 人妻少妇精品视频三区二区| 久久精品国产亚洲精品| 久99久热免费视频播放| 欧美牲交a欧美牲交aⅴ图片|