1. 程式人生 > 其它 >主從複製之複製原理

主從複製之複製原理

一主二從:預設情況下,每臺redis伺服器都是主節點:一般情況下只用配置從機就可以

 

認主機: 一主(79)二從(80,81)

從機6380:

127.0.0.1:6380> SLAVEOF 127.0.0.1 6379  #slaveof host port   認主機命令
OK
127.0.0.1:6380> info replication    
# Replication
role:slave
master_host:127.0.0.1  #主機資訊
master_port:6379  #當前角色從機
master_link_status:up  
master_last_io_seconds_ago:5
master_sync_in_progress:0
slave_repl_offset:0
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:56bf427481b8a841b169f9534fc1847f920e46cb
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:0

 

主機6379: 

# Replication
role:master
connected_slaves:1  #多了從機配置
slave0:ip=127.0.0.1,port=6380,state=online,offset=28,lag=0
master_replid:56bf427481b8a841b169f9534fc1847f920e46cb
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:28
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:28

 

真實的主從配置應該在配置檔案中配置,這樣是永久的,使用命令是暫時的

從機配置檔案中修改下面兩個:

replicaof  主機ip  主機埠

masterauth  主機密碼 

 

細節:

  主機可以寫,從機不可以寫只能讀!主機中的所有資訊和資料,都會被從機儲存

  主機可讀可寫多用於寫

  

 

 測試:主機斷開連線,從機依舊連線到主機的,但是沒有寫操作,如果主機回來了,從機依舊可以獲取到主機的資訊

  如果使用命令列來配置主從,如果從機重啟,從機就會變成主機!只要變為從機,馬上就可以獲取主機的值

複製原理:

  Slave啟動成功連線到master後會傳送一個sync同步命令

  Master接到命令,啟動後臺的存檔程序,同時收集所有接收到的用於修改資料集命令,在後臺程序執行完畢之後,master將傳送整個資料檔案到slave,並完成一次完全同步

  全量複製:而slave服務在接收到資料庫檔案資料後,將其存檔並載入到記憶體中

  增量複製:Master繼續將新的所有收集到的修改命令依次傳給slave,完成同步

  但是隻要重新連線master,一次完全同步(全量複製)將被自動執行