Redis多例項和主從複製03
阿新 • • 發佈:2020-08-09
主從模式
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