這篇文章主要介紹了redis中主從復(fù)制怎么用,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)建站,專注為中小企業(yè)提供官網(wǎng)建設(shè)、營銷型網(wǎng)站制作、響應(yīng)式網(wǎng)站開發(fā)、展示型成都網(wǎng)站制作、網(wǎng)站建設(shè)等服務(wù),幫助中小企業(yè)通過網(wǎng)站體現(xiàn)價(jià)值、有效益。幫助企業(yè)快速建站、解決網(wǎng)站建設(shè)與網(wǎng)站營銷推廣問題。
就是我們所說的主從復(fù)制,主機(jī)數(shù)據(jù)更新后根據(jù)配置和策略,自動(dòng)同步到備機(jī)的master/slver機(jī)制,Master以寫為主,Slave以讀為主。
讀寫分離、容災(zāi)恢復(fù)
每次與master斷開之后,都需要重新連接,除非你配置進(jìn)redis.conf文件
Info replication
redis.conf配置:
##設(shè)置當(dāng)本機(jī)為slav服務(wù)時(shí),設(shè)置master服務(wù)的IP地址及端口,在Redis啟動(dòng)時(shí),它會自動(dòng)從master進(jìn)行數(shù)據(jù)同步 slaveof <masterip> <masterport> ###當(dāng)master服務(wù)設(shè)置了密碼保護(hù)時(shí),slav服務(wù)連接master的密碼 masterauth <master-password>
拷貝多個(gè)redis.conf文件
復(fù)制出三個(gè)配置文件,模擬三個(gè)redis服務(wù) 端口區(qū)別開
[root@VM_0_7_centos ~]# cd /myredis/ [root@VM_0_7_centos myredis]# ll total 172 -rw-r--r-- 1 root root 92 Sep 18 21:38 dump.rdb -rw-r--r-- 1 root root 82646 Sep 23 14:56 redis_aof.conf -rw-r--r-- 1 root root 82645 Sep 23 10:37 redis.conf [root@VM_0_7_centos myredis]# cp redis.conf redis6379.conf [root@VM_0_7_centos myredis]# cp redis.conf redis6380.conf [root@VM_0_7_centos myredis]# cp redis.conf redis6381.conf
開啟 daemonize yes
Pid文件名字:
pidfile redis6479.pid
指定端口:
port 6379
Log文件名字
logfile 6379.log
Dump.rdb名字:
dbfilename dump6379.rdb

按照上述方法復(fù)制出3個(gè)配置文件,
redis6379.conf ,redis6380.conf ,redis6381.conf
[root@VM_0_7_centos myredis]# ll total 448 -rw-r--r-- 1 root root 5684 Sep 24 23:22 6379.log -rw-r--r-- 1 root root 5683 Sep 24 23:08 9736.log -rw-r--r-- 1 root root 92 Sep 24 23:22 dump6379.rdb -rw-r--r-- 1 root root 92 Sep 24 23:08 dump9736.rdb -rw-r--r-- 1 root root 92 Sep 18 21:38 dump.rdb -rw-r--r-- 1 root root 82649 Sep 24 23:21 redis6379.conf -rw-r--r-- 1 root root 82649 Sep 24 23:20 redis6380.conf -rw-r--r-- 1 root root 82649 Sep 24 23:20 redis6381.conf -rw-r--r-- 1 root root 82646 Sep 23 14:56 redis_aof.conf -rw-r--r-- 1 root root 82645 Sep 23 10:37 redis.conf
分別啟動(dòng)三臺服務(wù)器
[root@VM_0_7_centos myredis]# ps -ef |grep redis root 31408 1 0 15:33 ? 00:00:00 redis-server 0.0.0.0:6379 root 31439 16305 0 15:34 pts/0 00:00:00 redis-cli -p 6379 root 31503 1 0 15:34 ? 00:00:00 redis-server 0.0.0.0:6380 root 31524 16394 0 15:34 pts/1 00:00:00 redis-cli -p 6380 root 31573 1 0 15:35 ? 00:00:00 redis-server 0.0.0.0:6381 root 31598 16451 0 15:35 pts/2 00:00:00 redis-cli -p 6381
三臺服務(wù)沒有數(shù)據(jù)
使用info replication 查看信息,三個(gè)服務(wù),沒有關(guān)聯(lián),都是master

1.在主機(jī)填加數(shù)據(jù)
127.0.0.1:6379> set k1 v1 OK 127.0.0.1:6379> set k2 v2 OK 127.0.0.1:6379> set k3 v3 OK 127.0.0.1:6379> keys * 1) "k2" 2) "k3" 3) "k1"
2.在6380 和 6381 訂閱主機(jī)
127.0.0.1:6380> clear 127.0.0.1:6380> slaveof 127.0.0.1 6379 OK
127.0.0.1:6381> clear 127.0.0.1:6381> slaveof 127.0.0.1 6379 OK
3. 主機(jī)在從機(jī)訂閱后設(shè)置值,查看主從情況
從機(jī)訂閱后會復(fù)制主機(jī)全部信息

4. 使用 info replication 查看主機(jī) 和從機(jī) 狀態(tài)

5.只有主機(jī)能寫數(shù)據(jù)

6.主機(jī)關(guān)閉后 ,從機(jī)角色不變 為 slave

7. 主機(jī)重新開啟后,角色不變 仍然是 master

8.從機(jī)與master 斷開之后,都需要重新連接,除非配置進(jìn)redis.conf 文件

特點(diǎn):上一個(gè)Slave可以是下一個(gè)Slave的Master,Slave 同樣可以接收其他Slaves的連接和同步請求,那么該Slave作為了鏈條中下一個(gè)的master可以有效減輕master的寫壓力
中途變更轉(zhuǎn)向 會清除之前的數(shù)據(jù),重新建立拷貝最新的
Slaveof 新主庫IP 新主庫端口

1. 建立鏈接

2.測試 主從復(fù)制

關(guān)鍵命令
SLAVEOF NO ONE 使當(dāng)前數(shù)據(jù)庫停止與其他數(shù)據(jù)庫的同步,轉(zhuǎn)為主庫
1.以一主二從為基礎(chǔ)

2.主機(jī)斷開后,從機(jī) SLAVEOF NO ONE 轉(zhuǎn)為主庫

3.從機(jī)6380 被6381 監(jiān)聽后成為主機(jī),成功復(fù)制其值

4. 如果原來6379重啟成功,已經(jīng)失去主機(jī)身份,不在集群內(nèi)。沒有集群內(nèi)的數(shù)據(jù)

Slave啟動(dòng)成功連接到master后會發(fā)送一個(gè)sync命令。
Master接到命令啟動(dòng)后臺的存盤進(jìn)程,同時(shí)收集所有接收到的用于修改數(shù)據(jù)集命令,在后臺進(jìn)程執(zhí)行完畢之后,master將傳送整個(gè)數(shù)據(jù)文件到slave,以完成一次完全同步。
首次進(jìn)行全量控制:而slave服務(wù)在接收到數(shù)據(jù)庫文件數(shù)據(jù)后,將其存盤并加載到內(nèi)存中。
增量控制:master繼續(xù)將新的所有收集到的修改命令一次傳給slave,完成同步
但是只要是重新連接master,一次完全同步(全量復(fù)制)將被自動(dòng)執(zhí)行。
以一主二從為基礎(chǔ)。
反客為主的自動(dòng)版,能夠后臺監(jiān)控主機(jī)是否故障,如果故障了根據(jù)投票數(shù)自動(dòng)將從庫轉(zhuǎn)換為主庫
1.自定義的/myredis目錄下新建sentinel.conf文件,名字決不能錯(cuò)。
2.內(nèi)容
sentinel monitor被監(jiān)控?cái)?shù)據(jù)庫名字(自己起名字)127.0.0.1 6379 1
sentinel monitor host6379 127.0.0.1 6379 1
上面最后一個(gè)數(shù)字1,表示主機(jī)掛掉后slave投票看讓誰解題成為主機(jī),得票數(shù)多的成為主機(jī)
3.啟動(dòng)哨兵
Redis-sentinel /myredis/sentinel.conf
[root@VM_0_7_centos myredis]# cd /usr/local/bin [root@VM_0_7_centos bin]# ll total 37824 -rw-r--r-- 1 root root 139 Sep 23 15:21 appendonly.aof -rw-r--r-- 1 root root 125 Sep 23 16:00 dump.rdb -rwxr-xr-x 1 root root 4739968 Jun 12 23:09 redis-benchmark -rwxr-xr-x 1 root root 9634424 Jun 12 23:09 redis-check-aof -rwxr-xr-x 1 root root 9634424 Jun 12 23:09 redis-check-rdb -rwxr-xr-x 1 root root 5050384 Jun 12 23:09 redis-cli lrwxrwxrwx 1 root root 12 Jun 12 23:09 redis-sentinel -> redis-server -rwxr-xr-x 1 root root 9634424 Jun 12 23:09 redis-server -rwxr-xr-x 1 root root 9840 Jun 12 22:55 tclsh8.6 [root@VM_0_7_centos bin]# redis-sentinel /myredis/sentinel.conf

4.查看當(dāng)前數(shù)據(jù)

5.關(guān)閉6379,稍等片刻選舉中新的主機(jī) 6381

6. 6379重啟后,成為從機(jī),監(jiān)聽6381

7. 注意:一組sentinel能同時(shí)監(jiān)控多個(gè)Master
復(fù)制延時(shí):由于所有的寫操作都是先在Master上操作,然后同步更新到Slave中,所以從Master同步到Slave機(jī)器有一定的延遲,當(dāng)系統(tǒng)很繁忙時(shí),延遲問題會更加嚴(yán)重,Slave機(jī)器數(shù)量的增加也會使這個(gè)問題更加嚴(yán)重。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Redis中主從復(fù)制怎么用”這篇文章對大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!
本文標(biāo)題:Redis中主從復(fù)制怎么用
URL網(wǎng)址:http://www.chinadenli.net/article0/pisgio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、域名注冊、網(wǎng)站導(dǎo)航、電子商務(wù)、移動(dòng)網(wǎng)站建設(shè)、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)