redis主從複製(讀寫分離,容災恢復)
Redis_主從複製:主機資料更新後根據配置和策略, 自動同步到備機的master/slaver機制,Master(主伺服器)以寫為主,Slave(從伺服器)以讀為主
作用:讀寫分離,效能擴充套件,容災快速恢復
複製原理:
使用
(主要)
拷貝多個redis.conf檔案include(寫絕對路徑)
建立資料夾
mkdir /myredis
cd /myredis
複製一個原始redis.conf
cp /etc/redis.conf /myredis/redis.conf
編寫主從機的redis.conf
vi redis6379.conf
開啟daemonize yes(守護執行緒 即後臺執行)
daemonize yes
設定自己redis的密碼
requirepass 123456
給從機設定主機的密碼
masterauth 123456
Pid檔名字pidfile(後臺執行時寫入pid的檔案)
pidfile /var/run/redis_6379.pid
指定埠port
port 6379
(次要)
dump.rdb名字dbfilename
dbfilename dump6379.rdb
Appendonly 關掉或者換名字
appendfilename appendonly6379.aof
Log檔名字
logfile/tmp/redis6379.log
例子:
一主二僕:
編寫1主2從(啟用了RDB持久化)
vi /myredis/redis6379.conf
內容
include /myredis/redis.conf
pidfile /var/run/redis_6379.pid
port 6379
requirepass 123456
masterauth 123456
dbfilename dump6379.rdb
接著編譯另外2個
在myredis資料夾中啟動redis服務
redis-server /myredis/redis6379.conf
redis-server /myredis/redis6380.conf
redis-server /myredis/redis6381.conf
進入redis-cli(三個Linux介面分別進入)
redis-cli -p 6379
redis-cli -p 6380
redis-cli -p 6381
在從機上執行 配置為從機(127.0.0.1:主機ip 6379:主機埠)(從機掛掉了重啟需要重新配置從機 可以將配置增加到redis.conf檔案中,永久成為從機生效。)
slaveof 127.0.0.1 6379
在主機上檢視主從(master-slave)複製資訊
info replication
在從機上檢視主從複製資訊
薪火相傳:
上一個Slave可以是下一個slave的Master,Slave同樣可以接收其他slaves的連線和同步請求,
那麼該slave作為了鏈條中下一個的master, 可以有效減輕master的寫壓力,去中心化降低風險。
風險是一旦某個slave宕機,後面的slave都沒法備份
主機掛了,從機還是從機,無法寫資料了
反客為主:(可以使用哨兵模式自動實現)
當一個master宕機後,後面的slave可以立刻升為master,其後面的slave不用做任何修改。
在從機的redis-cli中使用 slaveof no one 將從機變為主機。