天天看點

Redis筆記(二)主從複制

       單台redis會遇到單點故障的問題,為了解決redis的高可用,主從複制應該是學習的第二個步驟。本文想達到的目的是,一個master帶一個slave,而slave又帶了一個slave,這樣的好處是,當master故障後,直接把slaver1改為master,其他的配置不需要修改,服務又可以正常使用。

Redis筆記(二)主從複制

作為master的redis配置檔案不需要修改,此處隻修改slave1和slave12的配置檔案,對于slave1隻需在redis.conf中找到# slaveof <masterip> <masterport>并修改為 slaveof192.168.1.18 6379 然後儲存即可,而slave12則修改為slaveof 192.168.10.10 6379 ,這樣就可以了,啟動slave1和slave12試試吧。

在192.168.1.18上執行redis-cli,使用info指令,在# Replication處能看到

role:master

connected_slaves:1

slave0: 192.168.10.10,6379,online

在192.168.10.10上的redis-cli中可以看到:

# Replication

role:slave

master_host: 192.168.1.18

master_port:6379

master_link_status:up

master_last_io_seconds_ago:7

master_sync_in_progress:0

slave_priority:100

slave_read_only:1

connected_slaves:1

slave0: 192.168.12.12,6379,online

在192.168.12.12上可以看到:

# Replication

role:slave

master_host: 192.168.10.10

master_port:6379

master_link_status:up

master_last_io_seconds_ago:3

master_sync_in_progress:0

slave_priority:100

slave_read_only:1

connected_slaves:0

     此時我們想實作的目标已經實作,但是發現在兩個slave上無法插入資料,當master故障後,需要在slave1上首先執行slaveof no one指令,再次執行info Replication時,它已經轉為master了,此時slave12不受影響。

redis 192.168.10.10:6379> slaveof no one

OK

redis 192.168.10.10:6379> infoReplication

# Replication

role:master

connected_slaves:1

slave0:127.0.0.1,6382,online

redis 192.168.10.10:6379>

        至此,已經完成了主從複制,細心的網友可能已經發現,隻需配置master的位址和端口,就可以作為slave存在,這樣資料就被别人盜取了!!!

目前是的,在下一節會解決這個問題。

繼續閱讀