主從概念
- ⼀個master可以擁有多個slave,⼀個slave⼜可以擁有多個slave,如此下去,形成了強⼤的多級服務器集群架構
- master用來寫數據,slave用來讀數據,經統計:網站的讀寫比率是10:1
-
通過主從配置可以實現讀寫分離
-
復制功能也不會阻塞從服務器: 只要在 redis.conf 文件中進行了相應的設置, 即使從服務器正在進行初次同步, 服務器也可以使用舊版本的數據集來處理命令查詢。
- 通過復制功能來讓主服務器免於執行持久化操作: 只要關閉主服務器的持久化功能, 然后由從服務器去執行持久化操作即可。減少服務器壓力。
復制功能的運作原理
- 無論是初次連接還是重新連接, 當建立一個從服務器時, 從服務器都將向主服務器發送一個 SYNC 命令。
- 主服務器接收到SYNC命名后,開始執行BGSAVE命令生成RDB文件並使用緩沖區記錄此后執行的所有寫命令;
- 主服務器BGSAVE執行完后,向所有從服務器發送快照文件,並在發送期間繼續記錄被執行的寫命令;
- 從服務器收到快照文件后丟棄所有舊數據,載入收到的快照;
- 主服務器快照發送完畢后開始向從服務器發送緩沖區中的寫命令;
- 從服務器完成對快照的載入,開始接收命令請求,並執行來自主服務器緩沖區的寫命令;
-
主從配置
配置主
- 查看當前主機的ip地址
ifconfig
- 修改etc/redis/redis.conf文件
sudo vim redis.conf
bind 192.168.26.128
- 重啟redis服務
sudo service redis stop
redis-server redis.conf
配置從
復制etc/redis/redis.conf文件
sudo cp redis.conf ./slave.conf
修改redis/slave.conf文件
sudo vi slave.conf
編輯內容
bind 192.168.26.128
slaveof 192.168.26.128 6379
port 6378redis服務
sudo redis-server slave.conf
查看主從關系
redis-cli -h 192.168.26.128 info Replication
數據操作
在master和slave分別執⾏info命令,查看輸出信息 進入主客戶端
redis-cli -h 192.168.26.128 -p 6379
進入從的客戶端
redis-cli -h 192.168.26.128 -p 6378
在master上寫數據
set aa aa
在slave上讀數據
get aa