Redis中主從復制怎么用

這篇文章主要介紹了redis中主從復制怎么用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)建站,專注為中小企業(yè)提供官網(wǎng)建設、營銷型網(wǎng)站制作、響應式網(wǎng)站開發(fā)、展示型成都網(wǎng)站制作、網(wǎng)站建設等服務,幫助中小企業(yè)通過網(wǎng)站體現(xiàn)價值、有效益。幫助企業(yè)快速建站、解決網(wǎng)站建設與網(wǎng)站營銷推廣問題。

Redis 主從復制(Master/Slave)

1.是什么:

    就是我們所說的主從復制,主機數(shù)據(jù)更新后根據(jù)配置和策略,自動同步到備機的master/slver機制,Master以寫為主,Slave以讀為主。

2.作用

讀寫分離、容災恢復

3.怎么玩

3.1 配從(庫)不配主(庫)

3.2 從庫配置:slaveof主庫IP主庫端口

每次與master斷開之后,都需要重新連接,除非你配置進redis.conf文件

Info replication

redis.conf配置:

##設置當本機為slav服務時,設置master服務的IP地址及端口,在Redis啟動時,它會自動從master進行數(shù)據(jù)同步

slaveof <masterip> <masterport>

###當master服務設置了密碼保護時,slav服務連接master的密碼

masterauth <master-password>

4 修改配置文件細節(jié)操作

  • 拷貝多個redis.conf文件

復制出三個配置文件,模擬三個redis服務 端口區(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

5 常用配置方式

5.1 一主二仆:

Redis中主從復制怎么用

按照上述方法復制出3個配置文件,

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

分別啟動三臺服務器

[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

三臺服務沒有數(shù)據(jù)

使用info replication 查看信息,三個服務,沒有關聯(lián),都是master

Redis中主從復制怎么用

1.在主機填加數(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 訂閱主機

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. 主機在從機訂閱后設置值,查看主從情況

從機訂閱后會復制主機全部信息

Redis中主從復制怎么用

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

Redis中主從復制怎么用

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

Redis中主從復制怎么用

6.主機關閉后 ,從機角色不變 為 slave

Redis中主從復制怎么用

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

Redis中主從復制怎么用

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

Redis中主從復制怎么用

5.2. 薪火相傳

特點:上一個Slave可以是下一個Slave的Master,Slave 同樣可以接收其他Slaves的連接和同步請求,那么該Slave作為了鏈條中下一個的master可以有效減輕master的寫壓力

中途變更轉(zhuǎn)向 會清除之前的數(shù)據(jù),重新建立拷貝最新的

Slaveof 新主庫IP 新主庫端口

Redis中主從復制怎么用

1. 建立鏈接

Redis中主從復制怎么用

2.測試 主從復制

Redis中主從復制怎么用

5.3.反客為主

關鍵命令

SLAVEOF NO ONE 使當前數(shù)據(jù)庫停止與其他數(shù)據(jù)庫的同步,轉(zhuǎn)為主庫

1.以一主二從為基礎

Redis中主從復制怎么用

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

Redis中主從復制怎么用

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

Redis中主從復制怎么用

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

Redis中主從復制怎么用

6. 復制原理

Slave啟動成功連接到master后會發(fā)送一個sync命令。

Master接到命令啟動后臺的存盤進程,同時收集所有接收到的用于修改數(shù)據(jù)集命令,在后臺進程執(zhí)行完畢之后,master將傳送整個數(shù)據(jù)文件到slave,以完成一次完全同步。

首次進行全量控制:而slave服務在接收到數(shù)據(jù)庫文件數(shù)據(jù)后,將其存盤并加載到內(nèi)存中。

增量控制:master繼續(xù)將新的所有收集到的修改命令一次傳給slave,完成同步

但是只要是重新連接master,一次完全同步(全量復制)將被自動執(zhí)行。

7. 哨兵模式(自動反客為主)

以一主二從為基礎。

反客為主的自動版,能夠后臺監(jiān)控主機是否故障,如果故障了根據(jù)投票數(shù)自動將從庫轉(zhuǎn)換為主庫

1.自定義的/myredis目錄下新建sentinel.conf文件,名字決不能錯。

2.內(nèi)容

sentinel monitor被監(jiān)控數(shù)據(jù)庫名字(自己起名字)127.0.0.1 6379 1

sentinel monitor host6379 127.0.0.1 6379 1

上面最后一個數(shù)字1,表示主機掛掉后slave投票看讓誰解題成為主機,得票數(shù)多的成為主機

3.啟動哨兵

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

Redis中主從復制怎么用

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

Redis中主從復制怎么用

5.關閉6379,稍等片刻選舉中新的主機 6381

Redis中主從復制怎么用

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

Redis中主從復制怎么用

7. 注意:一組sentinel能同時監(jiān)控多個Master

8. 復制的缺點

復制延時:由于所有的寫操作都是先在Master上操作,然后同步更新到Slave中,所以從Master同步到Slave機器有一定的延遲,當系統(tǒng)很繁忙時,延遲問題會更加嚴重,Slave機器數(shù)量的增加也會使這個問題更加嚴重。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Redis中主從復制怎么用”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關知識等著你來學習!

本文標題:Redis中主從復制怎么用
URL網(wǎng)址:http://muchs.cn/article0/pisgio.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供Google、域名注冊、網(wǎng)站導航電子商務、移動網(wǎng)站建設軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設