亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

redis 主從復(fù)制

經(jīng)常用Redis,你知道主從復(fù)制嗎?

 

master 節(jié)點(diǎn)提供數(shù)據(jù),也就是寫。slave 節(jié)點(diǎn)負(fù)責(zé)讀。

不是說master 分支不能讀數(shù)據(jù),也能只是我們希望將讀寫進(jìn)行分離。

slave 是不能寫數(shù)據(jù)的,只能處理讀請求

主從實(shí)現(xiàn)

客戶端 127.0.0.1:6379 服務(wù)器 212.64.89.173:6379

方式一

客戶端發(fā)送請求同步命令

slaveof masterip masterport

Copyslaveof 212.64.89.173 6379

方式二

客戶端啟動服務(wù)器參數(shù)

redis-server --slaveof masterip masterport

Copyredis-server --slaveof 212.64.89.173 6379

方式三

在客戶端的配置文件中寫入 slaveof 信息

Copyredis.conf

slaveof 212.64.89.173 6379

注意 斷開主從鏈接方式: 客戶端執(zhí)行 slaveof no one

設(shè)置鏈接密碼

server 端

服務(wù)啟動后設(shè)置

Copyconfig set requierpass <password>

配置文件添加密碼

Copy# redis.conf
requirepass <password>

client 端

命令設(shè)置密碼

Copyauth <password>

配置文件設(shè)置密碼

Copymasterauth <password>

啟動客戶端設(shè)置密碼

Copyredis-cli -a <password>

建立連接

建立鏈接的過程就是希望 master和 slave都保有對方的 IP 和 Port。

經(jīng)常用Redis,你知道主從復(fù)制嗎?

 

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

數(shù)據(jù)的同步分兩部分,全量同步和增量同步,在增量同步結(jié)束后,master 應(yīng)當(dāng)保存Slave 同步數(shù)據(jù)的位置。

經(jīng)常用Redis,你知道主從復(fù)制嗎?

 

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

它有兩部分組成 偏移量 + 字節(jié)值

結(jié)構(gòu)

經(jīng)常用Redis,你知道主從復(fù)制嗎?

 

創(chuàng)建

1 當(dāng)啟動AOF 時就會創(chuàng)建 復(fù)制積壓緩沖區(qū)

2 當(dāng)被選為 master 節(jié)點(diǎn),必須創(chuàng)建積壓緩沖區(qū)

作用

保存所有的對數(shù)據(jù)修改或數(shù)據(jù)庫修改的指令,查詢指令不會被記錄。

數(shù)據(jù)源

所有的進(jìn)入master 的對數(shù)據(jù)修改或數(shù)據(jù)庫修改的指令都會被填充到積壓緩沖區(qū)中。

偏移量

1 Master 和 Slave 都會記錄 offset 值, 每次復(fù)制都會對比offset 是否一致。如果一致,Master直接從 offset 處開始傳緩沖區(qū)數(shù)據(jù),如果不一致,那么Master將遵循 Slave 的offset 來傳。當(dāng)然會保證命令是完整的。

2 Master 保存有多個 offset 而 Slave 僅保存自己的。

3 Master發(fā)送一次,記錄一次, Slave 接受一次記錄一次。

關(guān)于Master注意

1如果master 數(shù)據(jù)量過大,應(yīng)該避免業(yè)務(wù)高峰期進(jìn)行數(shù)據(jù)同步。避免造成 master 阻塞

數(shù)據(jù)緩沖區(qū)滿, 此時將會丟棄最早的記錄(FIFO),如果全量復(fù)制的時間開銷過大,則可能在開增量復(fù)制時候已經(jīng)存在數(shù)據(jù)丟失,這會導(dǎo)致Master 和 Slave 數(shù)據(jù)不一致,為了保證一致性,必須開始新一輪的全量復(fù)制,完成后緩沖區(qū)又被填滿并存在丟棄,則會讓Slave進(jìn)入死循環(huán)。

因此數(shù)據(jù)緩沖區(qū)要設(shè)置的大小合適(依具體情況而定)。

Copyrepl-backlog-size 1mb   # 默認(rèn)的大小為 1MB

3 master 單機(jī)內(nèi)存不應(yīng)該占用主機(jī)內(nèi)存過多。一般的 50 ~ 70% 預(yù)留下 30% ~ 50%來進(jìn)行bgsave 、 創(chuàng)建復(fù)制緩沖區(qū)、執(zhí)行其他業(yè)務(wù)等。

關(guān)于Slave注意

1 為避免slave進(jìn)行全量復(fù)制、部分復(fù)制時服務(wù)器響應(yīng)阻塞或數(shù)據(jù)不同步,建議關(guān)閉此期間的對外服務(wù)。

Copyslave-server-stale-data yes|no

2 數(shù)據(jù)同步階段,master發(fā)送給 slave 信息可以理解 master是 slave 的一個客戶端,主動向slave發(fā)送命令。

3 多個slave同時對master請求數(shù)據(jù)同步,master發(fā)送的RDB文件增多,會對帶寬造成巨大沖擊,如果master寬帶不足,因此數(shù)據(jù)同步需要根據(jù)業(yè)務(wù)需求,適量錯峰。

4 slave過多時,應(yīng)該對拓?fù)浣Y(jié)構(gòu)進(jìn)行調(diào)整,由一主多從結(jié)構(gòu)變?yōu)闃錉罱Y(jié)構(gòu),中間結(jié)點(diǎn)即是master,也是slave。但是使用樹狀結(jié)構(gòu)時,因為層級越深,數(shù)據(jù)同步時延越大,因此將強(qiáng)一致性的數(shù)據(jù)放在頂層節(jié)點(diǎn),一致性稍弱的數(shù)據(jù)放在靠底層的節(jié)點(diǎn)。

命令傳播

當(dāng)master數(shù)據(jù)庫狀態(tài)被修改后,導(dǎo)致主從服務(wù)器數(shù)據(jù)庫狀態(tài)不一致,此時需要讓主從數(shù)據(jù)同步到一致的狀態(tài),同步的動作成為命令傳播master將接受到的數(shù)據(jù)變更命令發(fā)送給slave,slave接受命令后執(zhí)行命令。

網(wǎng)絡(luò)閃斷閃連 忽略短時間網(wǎng)絡(luò)中斷 部分復(fù)制長時間網(wǎng)絡(luò)中斷 全量復(fù)制

服務(wù)器運(yùn)行ID(runid)

每臺服務(wù)器每次運(yùn)行都會產(chǎn)生的身份識別碼,同一個服務(wù)器多次運(yùn)行產(chǎn)生的runid是不一樣的。

形式:runid 由 40 個字符組成 一般是16進(jìn)制的字符串

Copyinfo server
run_id:409b6e9ea2e5c32958de8f365711598c98489f13

心跳機(jī)制

master

指令 PING

周期 repl-ping-slave-period 默認(rèn)是 10s

作用 判斷 slave 是否在線

查詢 INFO replication 獲取最后一次 slave 連接時間間隔 lag = 0 / 1 屬于正常

slave

指令 REPLCONF{offset}

周期: 1s

作用1: 匯報自己的復(fù)制偏移量 獲取最新的數(shù)據(jù)變更指令

作用2: 判斷 master 是否存活

心跳注意事項

當(dāng) salve多數(shù)掉線 或者網(wǎng)絡(luò)延時過高時,master 會拒絕所有的同步信息。

Copymin-slaves-to-write 2   # 最小的 slave 數(shù)量

min-slaves-max-lag 8  # 最長的

當(dāng) slave 的數(shù)量小于2 ,或者所有的時延都大于等于 8 時,會強(qiáng) 關(guān)閉 master 的血功能來停止數(shù)據(jù)同步。

Slave 的數(shù)量和延時由REPLCONF{offset} 命令確認(rèn)。

完整的主從復(fù)制流程

經(jīng)常用Redis,你知道主從復(fù)制嗎?

 

讀寫分離

在redis主從架構(gòu)中,Master節(jié)點(diǎn)負(fù)責(zé)處理寫請求,Slave節(jié)點(diǎn)只處理讀請求。對于寫請求少,讀請求多的場景,例如電商詳情頁,通過這種讀寫分離的操作可以大幅提高并發(fā)量,通過增加redis從節(jié)點(diǎn)的數(shù)量可以使得redis的QPS達(dá)到10W+。

負(fù)載均衡

基于主從結(jié)構(gòu),配合讀寫分離,由slave分擔(dān)master負(fù)載,并根據(jù)需求的變化,改變slave的數(shù)量,通過多個從節(jié)點(diǎn)分擔(dān)數(shù)據(jù)讀取負(fù)載,大大提高Redis服務(wù)器并發(fā)量與數(shù)據(jù)吞吐量

故障恢復(fù)

當(dāng)master出現(xiàn)問題時,由slave提供服務(wù),實(shí)現(xiàn)快速的故障恢復(fù)

數(shù)據(jù)冗余

實(shí)現(xiàn)數(shù)據(jù)熱備份,時持久化之外的一種數(shù)據(jù)冗余方式

高可用基石

基于主從復(fù)制,構(gòu)建哨兵模式與集群,實(shí)現(xiàn)redis 的高可用方案。

作者: black_monkey

出處:
https://www.cnblogs.com/monkey-code/p/13111453.html

分享到:
標(biāo)簽:主從 復(fù)制 Redis
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定