一、如今有兩個redis,172.16.2.16爲master,10.65.200.202爲salve
二、在slave端修改配置項 salveof,以下:
slaveof 172.16.2.16 6379
三、在這種狀況下,master端的修改,會同步到slave端。
四、可是slave端不能執行寫操做,以下:
127.0.0.1:6379> get name
"andy"
127.0.0.1:6379> set name bill
(error) READONLY You can't write against a read only slave.
緣由是:若是slave能夠寫操做,就會致使主從數據不一致。所以,默認配置slave只能讀操做。
五、固然,也能夠配置寫操做,以下:
slave-read-only no
可是,slave端的修改,不會同步到master端。
六、mysql是支持主主複製的,也就是兩個設備互爲主從。若是把兩個redis設置爲互爲主從,行不行?
目前的redis版本不支持互爲主從。若是兩個redis配置成互爲主從,redis服務報錯,以下:
Master does not support PSYNC or is in error state (reply: -ERR Can't SYNC while not connected with my master)
七、也就是說,redis要實現主主複製,須要應用層管理。
A僅僅做爲master,B設置爲A的salve。
在某個條件下,B再也不做爲A的slave,僅僅設置爲master,同時A設置爲B的slave。
注意:這裏redis主主複製是指任一時刻只有一個方向的複製,並非徹底意義的主主複製,徹底意義的主主複製是同時兩個方向。