Redis的复制详解
復(fù)制基礎(chǔ)概念
Redis的主從復(fù)制特點
- 一個master可以有多個slave
- 可以用級聯(lián)復(fù)制功能
- master是以非阻塞的方式來同步數(shù)據(jù)給slave
其實redis的復(fù)制和mysql的主從復(fù)制很相似,也可以用來作讀寫分離
Redis的復(fù)制過程
首先主服務(wù)器會基于ping的方式檢查從服務(wù)器是否在線,如果在線就直接將內(nèi)存中的數(shù)據(jù)發(fā)送給從端,然后從端會將數(shù)據(jù)保存在文件中,然后將這個文件載入到內(nèi)存中實現(xiàn)數(shù)據(jù)的重建(載入過程稱之為load)
其實,這個主從復(fù)制過程是這樣的:
在啟動了slave以后,從端會向master 發(fā)送一個sync command 命令,請求來獲得主庫上的數(shù)據(jù),無論從庫是第一次連接進(jìn)來或者不是第一次連接進(jìn)來,master都會啟動一個后臺子進(jìn)程用于將內(nèi)存中的數(shù)據(jù)快照保存在數(shù)據(jù)文件中,然后將數(shù)據(jù)文件發(fā)送到村段,從端讀取該文件之后會載入到內(nèi)存實現(xiàn)數(shù)據(jù)重建。
復(fù)制過程演示
現(xiàn)在用171作為主庫,172做為從庫。
只需要這一個 SLAVEOF host port命令就實現(xiàn)了主從復(fù)制
注意:如果主服務(wù)器設(shè)置了認(rèn)證功能(保護模式),那么在連接的時候要用在slave端配置文件中加入masterauth 密碼。
從節(jié)點的相關(guān)配置
# 指定主端的ip和端口 slaveof host port # 主端有密碼 masterauth 123 # 指定當(dāng)主節(jié)點沒有應(yīng)答,但是該節(jié)點數(shù)據(jù)已經(jīng)過期的情況下,由于用戶請求過來,是否使用這個過期數(shù)據(jù) slave-serve-stale-data yes # 如果是從服務(wù)器的話,只讀 slave-read-only yes # 如果從服務(wù)器數(shù)量少于3個,那么主服務(wù)器就不能接受請求了 min-slaves-to-write 3 # 如果從服務(wù)器之后與主服務(wù)器超過10秒了,就進(jìn)制主服務(wù)器執(zhí)行寫操作 min-slave-max-log 10redis簡單主從復(fù)制這邊博文就講到這里,下篇博文將詳細(xì)講解基于sentinel的Redis復(fù)制的高可用。
------做運維之前很矯情的小年輕-----
總結(jié)
以上是生活随笔為你收集整理的Redis的复制详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis持久化和备份数据
- 下一篇: Redis复制的高可用详解