校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識(shí)庫 > 詳解Redis復(fù)制原理

詳解Redis復(fù)制原理

熱門標(biāo)簽:山東外呼銷售系統(tǒng)招商 北京400電話辦理收費(fèi)標(biāo)準(zhǔn) 超呼電話機(jī)器人 鄭州人工智能電銷機(jī)器人系統(tǒng) 十堰營銷電銷機(jī)器人哪家便宜 宿遷便宜外呼系統(tǒng)平臺(tái) 魔獸2青云地圖標(biāo)注 日本中國地圖標(biāo)注 貴州電銷卡外呼系統(tǒng)

前言

本文主要介紹Redis復(fù)制機(jī)制

一.配置與實(shí)踐

配置

Redis實(shí)例分為主節(jié)點(diǎn)(master)和從節(jié)點(diǎn)(slave),默認(rèn)情況下都是主節(jié)點(diǎn)。每一個(gè)從節(jié)點(diǎn)只能有一個(gè)主節(jié)點(diǎn),但是每一個(gè)主節(jié)點(diǎn)可以有多個(gè)從節(jié)點(diǎn)(注意數(shù)量,多個(gè)從節(jié)點(diǎn)會(huì)導(dǎo)致主節(jié)點(diǎn)寫命令多次發(fā)送從而過度消耗網(wǎng)絡(luò)帶寬,可用樹狀結(jié)構(gòu)降低主節(jié)點(diǎn)負(fù)載)。復(fù)制是單向的,只能從主節(jié)點(diǎn)復(fù)制到從節(jié)點(diǎn)。配置復(fù)制的方式由以下3種:

  • 在redis-slave.conf配置文件中加入slaveof {masterHost} {masterPort}
  • 在redis-server啟動(dòng)命令后加入 --slaveof {masterHost} {masterPort}
  • 啟動(dòng)后直接使用命令slaveof {masterHost} {masterPort}

綜上,Redis支持在啟動(dòng)之前配置,也支持運(yùn)行中動(dòng)態(tài)配置。

實(shí)踐

我們用動(dòng)態(tài)配置的方法來配置,先起一個(gè)端口為6379的Redis實(shí)例,作為主節(jié)點(diǎn):

redis-server /usr/local/Cellar/redis/4.0.9/.bottle/etc/redis.conf

再起一個(gè)端口為6380的Redis實(shí)例,作為6379的從節(jié)點(diǎn):

redis-server /usr/local/Cellar/redis/4.0.9/.bottle/etc/redis-slave.conf

用客戶端連到從節(jié)點(diǎn),使用slaveof命令,slaveof配置都是在從節(jié)點(diǎn)發(fā)起的。

127.0.0.1:6380> slaveof 127.0.0.1 6379

OK

從節(jié)點(diǎn)日志:

75585:S 06 May 16:27:50.389 * Connecting to MASTER 127.0.0.1:6379

75585:S 06 May 16:27:50.389 * MASTER -> SLAVE sync started

75585:S 06 May 16:27:50.390 * Non blocking connect for SYNC fired the event.

75585:S 06 May 16:27:50.390 * Master replied to PING, replication can continue...

75585:S 06 May 16:27:50.390 * Trying a partial resynchronization (request 47770067272eb8101489fe7c00c8e838125c3aa3:1).

75585:S 06 May 16:27:50.392 * Full resync from master: e91e683b1e13332f97ecb9fa90ecdace460ab4ca:0

75585:S 06 May 16:27:50.392 * Discarding previously cached master state.

75585:S 06 May 16:27:50.491 * MASTER -> SLAVE sync: receiving 215 bytes from master

75585:S 06 May 16:27:50.492 * MASTER -> SLAVE sync: Flushing old data

75585:S 06 May 16:27:50.492 * MASTER -> SLAVE sync: Loading DB in memory

75585:S 06 May 16:27:50.492 * MASTER -> SLAVE sync: Finished with success

主節(jié)點(diǎn)日志:

75553:M 06 May 16:27:50.391 * Slave 127.0.0.1:6380 asks for synchronization

75553:M 06 May 16:27:50.391 * Partial resynchronization not accepted: Replication ID mismatch (Slave asked for '47770067272eb8101489fe7c00c8e838125c3aa3', my replication IDs are '160af1c75f86edc50186e3e4a4dc6ecb5e3fa586' and '0000000000000000000000000000000000000000')

75553:M 06 May 16:27:50.391 * Starting BGSAVE for SYNC with target: disk

75553:M 06 May 16:27:50.391 * Background saving started by pid 75675

75675:C 06 May 16:27:50.395 * DB saved on disk

75553:M 06 May 16:27:50.490 * Background saving terminated with success

75553:M 06 May 16:27:50.491 * Synchronization with slave 127.0.0.1:6380 succeeded

可以看到,第一次建立復(fù)制關(guān)系的時(shí)候,主節(jié)點(diǎn)和從節(jié)點(diǎn)進(jìn)行了一次全量復(fù)制,見圖:

當(dāng)完成復(fù)制的建立之后,接下來主節(jié)點(diǎn)會(huì)持續(xù)的把寫命令發(fā)送給從節(jié)點(diǎn),保證主從數(shù)據(jù)一致。

在主實(shí)例上添加新的key:

127.0.0.1:6379> set Lin 112131

OK

在從實(shí)例查看剛剛添加的key:

127.0.0.1:6380> get Lin

"112131"

只讀

由于復(fù)制只能從主節(jié)點(diǎn)到從節(jié)點(diǎn),對(duì)于從節(jié)點(diǎn)的數(shù)據(jù)修改主節(jié)點(diǎn)無法感知,為了避免主從實(shí)例之間的數(shù)據(jù)不一致。從節(jié)點(diǎn)默認(rèn)配置為只讀模式:

slave-read-only yes

二.工作原理

我們先講3個(gè)比較關(guān)鍵的參數(shù):master_replid、master_repl_offset和slave_repl_offset。我們分別在master6379和slave6380上執(zhí)行info replication

127.0.0.1:6379> info replication

# Replication

role:master

connected_slaves:1

slave0:ip=127.0.0.1,port=6380,state=online,offset=1093,lag=1

master_replid:e91e683b1e13332f97ecb9fa90ecdace460ab4ca

master_replid2:0000000000000000000000000000000000000000

master_repl_offset:1093

second_repl_offset:-1

repl_backlog_active:1

repl_backlog_size:1048576

repl_backlog_first_byte_offset:1

repl_backlog_histlen:1093

127.0.0.1:6380> info replication

# Replication

role:slave

master_host:127.0.0.1

master_port:6379

master_link_status:up

master_last_io_seconds_ago:9

master_sync_in_progress:0

slave_repl_offset:1107

slave_priority:100

slave_read_only:1

connected_slaves:0

master_replid:e91e683b1e13332f97ecb9fa90ecdace460ab4ca

master_replid2:0000000000000000000000000000000000000000

master_repl_offset:1107

second_repl_offset:-1

repl_backlog_active:1

repl_backlog_size:1048576

repl_backlog_first_byte_offset:1

repl_backlog_histlen:1107

master_replid是master啟動(dòng)時(shí)生成的隨機(jī)字符串,用來標(biāo)識(shí)主實(shí)例

master_repl_offset是復(fù)制流中的一個(gè)偏移量,master處理完寫入命令后,會(huì)把命令的字節(jié)長(zhǎng)度做累加記錄,統(tǒng)計(jì)在該字段。該字段也是實(shí)現(xiàn)部分復(fù)制的關(guān)鍵字段。

slave_repl_offset同樣也是一個(gè)偏移量,從節(jié)點(diǎn)收到主節(jié)點(diǎn)發(fā)送的命令后,累加自身的偏移量,通過比較主從節(jié)點(diǎn)的復(fù)制偏移量可以判斷主從節(jié)點(diǎn)數(shù)據(jù)是否一致。

當(dāng)從實(shí)例連接到主實(shí)例時(shí),從實(shí)例會(huì)發(fā)送master_replid和master_repl_offset(標(biāo)識(shí)與主實(shí)例同步的最后一個(gè)快照)請(qǐng)求部分復(fù)制。如果主實(shí)例接收部分復(fù)制的話則從最后一個(gè)偏移量開始增量進(jìn)行部分復(fù)制,否則將進(jìn)行全量復(fù)制。如圖:

三.數(shù)據(jù)同步

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

全量復(fù)制

全量復(fù)制是Redis最早支持的復(fù)制方式,也是主從第一次建立復(fù)制的時(shí)候必須經(jīng)歷的。它會(huì)把主節(jié)點(diǎn)全部數(shù)據(jù)一次性發(fā)送給從節(jié)點(diǎn),當(dāng)數(shù)據(jù)量較大的時(shí)候,會(huì)對(duì)主從節(jié)點(diǎn)和網(wǎng)絡(luò)造成很大開銷。主節(jié)點(diǎn)執(zhí)行bgsave保存RDB文件,然后將這個(gè)文件發(fā)送給從節(jié)點(diǎn),從節(jié)點(diǎn)收到RDB文件后,會(huì)先將內(nèi)存中的所有數(shù)據(jù)清除,然后再將RDB文件中的數(shù)據(jù)導(dǎo)入。

主實(shí)例在復(fù)制過程中是完全異步的,因此不會(huì)阻塞主節(jié)點(diǎn)的請(qǐng)求。在這一期間內(nèi)主節(jié)點(diǎn)的所有寫入命令數(shù)據(jù)都保存在從客戶端緩沖區(qū)(slave client buffer)內(nèi),在從節(jié)點(diǎn)加載完RDB文件后,主節(jié)點(diǎn)會(huì)將這個(gè)緩沖區(qū)的內(nèi)容發(fā)送給從節(jié)點(diǎn)。

從客戶端緩沖區(qū)默認(rèn)大小限制為:

client-output-buffer-limit slave 256mb 64mb 60

意思是如果60秒內(nèi)緩沖區(qū)消耗持續(xù)大于64MB或者直接超過256MB時(shí),主節(jié)點(diǎn)將直接關(guān)閉復(fù)制客戶端連接,造成全量同步失敗。

部分復(fù)制

在高版本的Redis實(shí)現(xiàn)中,master_replid和offset存儲(chǔ)在RDB文件中。當(dāng)從實(shí)例在復(fù)制過程中,因網(wǎng)絡(luò)閃斷等原因造成的數(shù)據(jù)丟失場(chǎng)景,Redis能夠從rdb文件中重新加載master_replid和offset,從而使部分重新同步成為可能。因?yàn)檠a(bǔ)發(fā)的數(shù)據(jù)遠(yuǎn)小于全量數(shù)據(jù),所以可以有效的避免全量復(fù)制帶來的負(fù)載和消耗。

之前說過,從節(jié)點(diǎn)連接主節(jié)點(diǎn)之后,會(huì)使用master_replid和master_repl_offset請(qǐng)求主節(jié)點(diǎn),首先判斷master_replid是否和自己的master_replid一致,然后檢查請(qǐng)求中的master_repl_offset是否能從緩沖區(qū)(replication backlog)中獲取,如果偏移量在backlog范圍內(nèi),那么可以進(jìn)行部分復(fù)制。如果在斷開連接期間主節(jié)點(diǎn)收到的寫入命令的數(shù)量超過了backlog緩沖區(qū)的容量,那么會(huì)進(jìn)行全量復(fù)制。默認(rèn)情況下backlog為1MB。

以上就是詳解Redis復(fù)制原理的詳細(xì)內(nèi)容,更多關(guān)于Redis復(fù)制原理的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • 淺談Redis主從復(fù)制以及主從復(fù)制原理
  • 詳解Redis主從復(fù)制實(shí)踐
  • Redis持久化與主從復(fù)制的實(shí)踐
  • 使用Docker搭建Redis主從復(fù)制的集群
  • Redis全量復(fù)制與部分復(fù)制示例詳解
  • redis主從復(fù)制原理的深入講解
  • Redis主從復(fù)制詳解
  • CentoS6.5環(huán)境下redis4.0.1(stable)安裝和主從復(fù)制配置方法
  • Redis教程(九):主從復(fù)制配置實(shí)例

標(biāo)簽:大慶 果洛 江蘇 臺(tái)州 北京 楊凌 吉安 朝陽

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《詳解Redis復(fù)制原理》,本文關(guān)鍵詞  詳解,Redis,復(fù)制,原理,詳解,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解Redis復(fù)制原理》相關(guān)的同類信息!
  • 本頁收集關(guān)于詳解Redis復(fù)制原理的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    成人开心网精品视频| 日韩电影一二三区| 成人aa视频在线观看| 中文字幕精品综合| 91浏览器打开| 亚洲一区二区三区影院| 在线电影院国产精品| 狠狠色综合色综合网络| 国产精品久线观看视频| 97精品国产露脸对白| 亚洲一区二区高清| 精品毛片乱码1区2区3区| 国产成人啪免费观看软件 | 国产91在线观看丝袜| 国产精品久线在线观看| 欧美色大人视频| 久草精品在线观看| 亚洲欧洲日韩在线| 69堂成人精品免费视频| 丁香啪啪综合成人亚洲小说 | 日本视频中文字幕一区二区三区| 日韩精品一区二| 91在线观看免费视频| 日韩不卡一区二区| 国产精品毛片久久久久久久| 欧美另类z0zxhd电影| 国产精品123区| 午夜日韩在线观看| 中文字幕国产一区二区| 717成人午夜免费福利电影| 成人午夜大片免费观看| 婷婷一区二区三区| 17c精品麻豆一区二区免费| 日韩欧美电影一二三| 91麻豆国产福利在线观看| 狠狠色狠狠色综合系列| 亚洲国产精品影院| 欧美国产1区2区| 日韩欧美激情在线| 欧美日韩亚洲综合在线 | 精品视频资源站| 丁香婷婷综合色啪| 日本欧美加勒比视频| 亚洲另类春色校园小说| 国产夜色精品一区二区av| 91麻豆精品久久久久蜜臀| av在线一区二区三区| 久久精品国产精品青草| 亚洲小说欧美激情另类| 亚洲色图视频网| 欧美激情一区不卡| 久久久噜噜噜久噜久久综合| 欧美精品电影在线播放| 色婷婷精品大在线视频| 成人精品视频一区二区三区尤物| 久久精品国产精品青草| 日韩二区三区四区| 午夜精品久久久久久久99水蜜桃| 亚洲欧美自拍偷拍| 中文字幕+乱码+中文字幕一区| 日韩欧美精品三级| 日韩三级精品电影久久久| 欧美一区二区三区在线观看| 欧美伦理电影网| 欧美日韩在线播放三区四区| 在线观看一区日韩| 在线观看亚洲精品视频| 91久久精品一区二区二区| 91视视频在线观看入口直接观看www | 欧美视频在线不卡| 91片在线免费观看| 91蜜桃视频在线| 91美女视频网站| 色噜噜狠狠成人中文综合 | 欧美揉bbbbb揉bbbbb| 色国产精品一区在线观看| 色老头久久综合| 在线亚洲+欧美+日本专区| 欧美性受极品xxxx喷水| 欧美日韩免费电影| 日韩一二三四区| 精品国产91洋老外米糕| 国产亚洲一区二区三区四区 | 91久久精品午夜一区二区| 欧洲精品在线观看| 欧美日韩综合在线| 日韩一区国产二区欧美三区| 精品久久一区二区| 欧美极品少妇xxxxⅹ高跟鞋 | 91精品久久久久久久久99蜜臂| 制服丝袜av成人在线看| 欧美不卡一二三| 国产欧美日韩不卡免费| 亚洲欧美在线aaa| 午夜视频在线观看一区二区| 久久99精品久久久久久国产越南| 激情亚洲综合在线| 不卡影院免费观看| 在线观看视频一区二区| 日韩视频一区二区在线观看| 国产欧美一区二区在线观看| 亚洲精品中文字幕在线观看| 午夜不卡在线视频| 国产精品亚洲人在线观看| www.久久精品| 欧美一区二区三级| 中文字幕乱码久久午夜不卡 | 91麻豆免费看片| 日韩一区二区三区观看| 国产精品毛片无遮挡高清| 日韩激情在线观看| 不卡高清视频专区| 在线成人小视频| 亚洲欧美自拍偷拍| 久久精品国产免费看久久精品| 99久久精品情趣| 精品三级在线看| 亚洲尤物视频在线| 成人小视频免费在线观看| 欧美日韩在线不卡| 欧美精彩视频一区二区三区| 香蕉成人伊视频在线观看| 国内精品伊人久久久久av一坑| 日本乱码高清不卡字幕| 久久久国产综合精品女国产盗摄| 一片黄亚洲嫩模| 国产成人一区在线| 欧美一区二区三区在| 亚洲色图欧美偷拍| 国产激情偷乱视频一区二区三区| 欧美日韩你懂的| 国产精品福利一区二区三区| 日本vs亚洲vs韩国一区三区 | 国产在线一区二区| 欧美日韩视频在线一区二区| 国产欧美精品一区二区三区四区| 蜜臀a∨国产成人精品| 色婷婷综合久久久久中文一区二区| 久久久久国产一区二区三区四区| 亚洲一区二区在线免费观看视频| 成人免费黄色大片| 久久综合久久综合亚洲| 麻豆视频一区二区| 欧美日韩精品欧美日韩精品一综合| 亚洲天堂成人在线观看| 国产91精品免费| 久久综合九色欧美综合狠狠| 日韩vs国产vs欧美| 欧美精品亚洲一区二区在线播放| 亚洲免费在线看| 91在线一区二区三区| 国产精品国产三级国产aⅴ入口| 国产在线播放一区三区四| 欧美一二三区精品| 奇米影视一区二区三区小说| 欧美日韩日日夜夜| 亚洲一区二区三区三| 91美女视频网站| 亚洲日本在线观看| 91影院在线观看| 亚洲欧美另类综合偷拍| 91丝袜美腿高跟国产极品老师| 国产精品久久久久久久久免费桃花 | 老汉av免费一区二区三区| 这里只有精品免费| 日日骚欧美日韩| 欧美日韩视频一区二区| 日韩在线一二三区| 日韩一区二区三区四区五区六区| 蜜臀a∨国产成人精品| 日韩欧美国产小视频| 久久99蜜桃精品| 久久久久久久久久久久久久久99 | 欧美视频日韩视频| 香蕉久久一区二区不卡无毒影院| 欧美精品v日韩精品v韩国精品v| 亚洲va韩国va欧美va精品| 欧美精品高清视频| 久久er99热精品一区二区| 久久女同精品一区二区| 国产成人午夜高潮毛片| 最新不卡av在线| 欧美日韩精品免费观看视频| 蜜桃久久av一区| 日本一区二区免费在线观看视频| 99re这里只有精品6| 偷偷要91色婷婷| 久久久久九九视频| 色老头久久综合| 久久精品国产**网站演员| 国产精品色婷婷久久58| 欧美在线观看视频在线| 美国毛片一区二区三区| 日本一区二区成人| 欧美午夜电影网| 国产毛片精品视频| 亚洲曰韩产成在线| 久久久久99精品一区| 欧美视频自拍偷拍| 国产成人午夜片在线观看高清观看|