1. 程式人生 > 其它 >redis主從複製(讀寫分離,容災恢復)

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 將從機變為主機