Redis筆記十一之主從複製

設置主從:

        其實Redis配置主從只需要修改這個slaveof參數。

        在redis.conf中更改slaveof參數在其後面指定主節點的ip和端口號告訴它誰是主節點。redis啓動後主從節點之間會進行通信兩者可以相互感知。

        修改後主從節點分別執行info命令查看

             主:角色是master,它的從節點是192.168.79.131端口6379

# Replication

role:master

connected_slaves:1

slave0:ip=192.168.79.131,port=6379,state=online,offset=299,lag=1

 

             從:角色是從,master的ip是192.168.79.128,端口6379

# Replication

role:slave

master_host:192.168.79.128

master_port:6379


Redis主從介紹:

       1:Redis支持一主多從架構,主節點負責把數據同步到從節點,主節點支持讀寫操作而從節點只支持讀不支持寫操作。

       2:從節點不支持寫操作但是通過修改redis.conf中的readonly參數也可以讓從節點執行寫操作。但是這樣做沒有實際意義因爲只有主節點可以同步數據而從節點不能。

       3:動態設置

             在redis-cli中執行slaveof  no one將一個從節點變爲主節點。但是改變後這個節點就等於從原來的主從架構中獨立出來了成爲一個獨立的數據庫。(反之行不行)

       4:主從節點數據複製過程

           Redis啓動時

               A. 當redis啓動後,從節點會向主節點發送一個sync命令。

               B. 主節點收到sync命令後會將當前庫中數據保存爲快照,在生成快照期間如果客戶端有數據命令發送過來則將它們緩存起來。

               C. 快照生成之後主節點會將快照文件和緩存的命令一起發給從節點。

               D. 從節點收到後會加載快照文件執行緩存命令,這樣就保證了主從節點之間數據的一致性。

           Redis啓動後

               A. 主節點每收到一個客戶端命令,自己執行並且會將此命令發給從節點執行。

           注意:

               這裏的快照和RDB快照沒有關係。

               之前說的從節點不支持寫操作指的是客戶端的寫操作,從節點執行的是主節點發送過來的寫操作。

 

       5:注意事項

             如果要建立主從要確保主節點激活了持久化,服務器宕機後不會自動重啓。因爲一旦服務器宕機重啓,redis會使用RDB或AOF來恢復數據而之前又沒有激活持久化,那麼redis就會基於空的RDB或AOF文件來恢復數據,這樣主節點就必然爲空,從節點上的數據也就…你懂的。

             如果主節點配置了登錄密碼,則從節點的redis.conf中就需要使用masterauth來配置主數據庫密碼,這樣從節點在連接主節點時會自動使用auth命令做認證。


Redis優缺點:

        優點:

                解決單點故障;解決負載均衡。

        缺點:

                當主節掛了後就不能用了,雖然數據並沒有丟。主從不能自動切換,如果要實現自動切換得藉助別的監控工具。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章