主從復制: 復制概念中分為兩類數據庫,一類是主數據庫(master),一類是從數據(slave),主 數據庫可以進行讀寫操作,并把寫的操作同步給從數據庫,一般從數據庫是只讀的。(讀寫分 離)一個主數據庫可以有多個從數據庫,而一個從數據庫只能屬于一個主數據庫。
特點
主數據庫可以進行讀寫操作,當讀寫操作導致數據變化時會自動將數據同步給從數據
庫
從數據庫一般都是只讀的,并且接收主數據庫同步過來的數據
一個 master 可以擁有多個 slave,但是一個 slave 只能對應一個 master
?slave 掛了不影響其他 slave 的讀和 master 的讀和寫,重新啟動后會將數據從 master
同步過來
master 掛了以后,不影響 slave 的讀,但 redis 不再提供寫服務,master 重啟后 redis
將重新對外提供寫服務
?master 掛了以后,不會在 slave 節點中重新選一個 master。
如圖 7-1 所示,這就是經典的一主二從集群模式。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖7-1主從復制集群模式
實戰:
素材

素材(需要自己去網上找)中包含 redis-new.sh 和 sentinel-new.sh,
redis-new.sh:用于生成新的 redis 配置文件,通過參數自動修改配置,有興趣的同學
可以打開查看腳本各代碼含義。
sentinel-new.sh:用于生成哨兵配置文件,哨兵概念會講解。

克隆三臺安裝了 Redis 的虛擬機
名稱推薦包含主機 IP 地址尾數,這樣一眼就能看出是主機還是從機,如圖 7-8 所示,建立
Redis-151/Redis-152/Redis-153 三臺虛擬機。



啟動并為每臺機器固定 IP 地址
啟動每臺機器,分別登錄并修改 IP 地址,例如 Redis-151 機器,命令如下:
??
?cat? /etc/sysconfig/network-scripts/ifcfg-ens33? 查看是否正確否則,
?vi?/etc/sysconfig/network-scripts/ifcfg-ens33? ?修改文件,默認你的文件是能夠正常操作的,注意網關ip,和要修改的ip

注意:修改配置要重啟網絡?


# 重啟網絡服務 systemctl restart network
接下來就是搭建集群:
注意:自己的ip。
Redis151機器執行:
# 新建 redis_7001.conf 配置文件,端口 7001,密碼都是 123456
sh ~/redis-new.sh 7001 123456 123456
Redis152 只需要修改端口為 7002,Redis153 修改為 7003 即可。

啟動 Redis 進程并測試
Redis-151 是主機,啟動非常簡單,配置文件生成位置和之前一樣,我們可以通過以下命令 啟動。
# Redis151 執行啟動命令
?cd /usr/local/redis/conf/
?/usr/local/redis/bin/redis-server redis_7001.conf

7001是主機,7002,7003為從機

# 測試從機是否能寫入
? get name
??set name zhangsan

# 注意到 Redis-151 主機執行
?/usr/local/redis/bin/redis-cli -p 7001 -a 123456
?# 查看主從復制關系
?info replication
?# 測試主機是否能寫入
?get name
?set name zhangsan
?get name

