redis之間的復(fù)制使用的三種機(jī)制:
1,當(dāng)master和slave正常連接的時(shí)候,master會(huì)通過(guò)命令持續(xù)向slave發(fā)送更新流,以保證發(fā)生在master 里任何數(shù)據(jù)集中的任何變更都會(huì)同步到slave。
2,當(dāng)master和slave之間的連接由于網(wǎng)絡(luò)問題或者在master到slave之間超時(shí)而導(dǎo)致連接斷開的時(shí)候,slave會(huì)嘗試重新連接并嘗試?yán)^續(xù)部分重新同步。
3,如果部分更新失敗,slave會(huì)發(fā)起一個(gè)全量同步。master需要?jiǎng)?chuàng)建一個(gè)其所有數(shù)據(jù)的快照,發(fā)送給slave,然后繼續(xù)以發(fā)送命令的方式發(fā)送變更。
創(chuàng)建主從復(fù)制
1,配置master
#vi /etc/redis.conf
//注釋如下內(nèi)容
#bind 127.0.0.1
//更改如下內(nèi)容
requirepass redisPwd
//修改如下內(nèi)容
appendonly yes
appendfilename "appendonly.aof"
修改完成后保存退出;在redis統(tǒng)計(jì)目錄里,復(fù)制一個(gè)redis,作為slave。
cp -r redis redis_slave
2,配置slave
slave的配置過(guò)程和master大致相同
//啟用如下內(nèi)容,后面輸入master的密碼
masterauth redisPwd
//由于測(cè)試在同一個(gè)虛擬機(jī)上進(jìn)行,所以需要更改slave的port
port 6389
修改完成后保存。分別啟動(dòng)master和slave,進(jìn)行測(cè)試。