1. 程式人生 > 實用技巧 >Redis多例項和主從複製03

Redis多例項和主從複製03

主從模式

redis三種叢集模式

* 主從模式

* Sentinel模式

* Cluster模式

主從模式介紹

主從模式是三種模式中最簡單的,在主從複製中,資料庫分為兩類:主資料庫(master)和從資料庫(slave)。

特點

主資料庫可以進行讀寫操作,當讀寫操作導致資料變化時會自動將資料'同步'給從資料庫
從資料庫一般都是'只讀'的,並且接收主資料庫同步過來的資料
一個master可以擁有多個slave,但是一個slave只能對應'一個'master
slave掛了不影響其他slave的讀和master的讀和寫,'重新啟動後會將資料從master同步過來'(無論是rdb模式還是aof模式)
master掛了以後,不影響slave的讀,但redis不再提供寫服務,master重啟後redis將重新對外提供寫服務
master掛了以後,'不會'在slave節點中重新選一個master

缺點:
從上面可以看出,master節點在主從模式中唯一,若master掛掉,則redis無法對外提供寫服務

工作原理

當slave啟動後,主動向master傳送SYNC命令。(#每秒一次)
master接收到SYNC命令後在後臺儲存快照(RDB持久化)和快取儲存快照這段時間的命令,然後將儲存的快照檔案和快取的命令傳送給slave。
slave接收到快照檔案和命令後加載快照檔案和快取的執行命令。

redis搭建

1.下載軟體包

[root@db01 ~]# rz redis-3.2.12.tar.gz
或者
[root@db01 ~]# wget http://download.redis.io/releases/redis-3.2.12.tar.gz

2.安裝依賴 (選)

[root@db01 ~]# yum install -y gcc gcc-c++

3.解壓

[root@db01 ~]# tar xf redis-3.2.12.tar.gz -C /usr/local/
[root@db01 ~]# ln -s /usr/local/redis-3.2.12 /usr/local/redis

4.編譯安裝

[root@db01 ~]# cd /usr/local/redis && make && make install

5.編輯配置檔案

#建立reids配置檔案目錄(位置隨意)
[root@db01 redis]# mkdir /service/redis/6301 -p
#編寫配置檔案
[root@db01 redis]# vim /service/redis/6301/redis.conf
#監聽地址(注意順序)
bind 172.16.1.51 127.0.0.1
#埠
port 6301
#後臺啟動
daemonize yes
#pid檔案位置
pidfile /service/redis/6301/redis_6301.pid
#日誌級別
loglevel notice
#指定日誌檔案
logfile "/service/redis/6301/redis_6301.log"
#持久化資料檔案儲存位置
dir /service/redis/6301
#rdb持久化資料檔名
dbfilename dump.rdb
#Redis持久化(不能配置較短的時間)
save 900 1
save 300 10
save 60 10000

#Redis密碼
requirepass 123
#主從複製中主庫密碼
masterauth 123

6.啟動redis

指定配置檔案啟動
[root@db02 ~]# redis-server /service/redis/6301/redis.conf

7.連線redis

[root@db01 redis]# redis-cli -a 123 -p 6301

8.從庫執行

[root@db02 ~]# redis-cli -a 123 -p 6302 SLAVEOF 172.16.1.52 6302
[root@db03 ~]# redis-cli -a 123 -p 6303 SLAVEOF 172.16.1.52 6302

#可以在配置檔案中配置
replicaof 172.16.1.52 6302

注意

1.關閉防火牆
[root@db02 ~]# systemctl stop firewalld.service
2.關閉主從複製
127.0.0.1:6304> slaveof no one