redis叢集策略-主從複製
阿新 • • 發佈:2018-11-19
一,主從複製:
- Master可以擁有多個slave
- 多個slave除了可以連線到同一個master外,還可以連線到其他的slave,但不常用。
- 主從複製不會阻塞到master,再同步資料時,master可以繼續處理client的請求。
- 主伺服器負責寫,從伺服器負責讀。
二,主從複製過程:
- slave與master建立連線,傳送同步命令。
- master後臺會建立一個後臺程序將資料庫快照儲存到檔案中(rdb方式),主程序開始繼續收集寫入命令並且寫入快取。
- 完成了後臺的寫入檔案後,就將rdb檔案和快取傳送給slave。
- slave拿到rdb檔案後將檔案儲存至磁碟並執行收到的快取裡面的命令,就完成了主從複製。
三,配置主從複製:我這裡以自己的機器為例
1. 首先需要三臺伺服器(裝有redis的機器)
2. 我使用的機器,我使用centOs redis1 ip:192.168.159.137作為主伺服器,其餘兩個作為從伺服器。
centOs redis1 ip:192.168.159.137
centOs redis2 ip:192.168.159.138
centOs redis3 ip:192.168.159.139
3.配置從伺服器這裡以centOs redis2 ip:192.168.159.138為例
vim /usr/local/redis-4.0.0/redis.config
slaveof <masterip> <masterport> masterip:主伺服器ip masterport:主伺服器埠號
wq,儲存。
4. 啟動主伺服器centOs redis1 ip:192.168.159.137,啟動 centOs redis1 ip:192.168.159.138.
執行 從伺服器redis-cli,輸入info
發現 master_link_status:down ,主伺服器是關閉的。但我的主伺服器是開啟的。經過搜尋資料。主伺服器也需要配置一下。
5.配置主伺服器
vim /usr/local/redis-4.0.0/redis.config
(1)將 bind 127.0.0.1註釋掉
(2)將protected-mode 改成no
儲存,啟動主伺服器和主伺服器,執行redis-cli。輸入info命令。
主:
從:
測試:
主:
從:
可見已經成功。
此時我們測試使用從伺服器set
發現報錯:意思就是從伺服器不能執行寫操作,只能讀。