主從複製:
1、redis的複製功能是支援多個資料庫之間的資料同步。 一類是主資料庫(master)一類是從資料庫(slave),主資料庫可以進行讀寫操作,當發生寫入操作的時候自動將資料同步到從資料庫,而從資料庫一般是唯讀的,並且接收主資料庫同步過來的數據,一個主資料庫可以有多個從資料庫,而一個從資料庫只能有一個主資料庫。 (建議學習:Redis影片教學)
#2、透過redis的複製功能可以很好的實作資料庫的讀寫分離,提升伺服器的負載能力。主資料庫主要進行寫入操作,而從資料庫負責讀取操作。
Redis複製工作原理的總結如下:
1. 如果設定了一個Slave,無論是第一次連接還是重連到Master,它都會發出一個SYNC指令;
2. 當Master收到SYNC指令之後,會做兩件事:
a) Master執行BGSAVE,也就是在背景儲存資料到磁碟(rdb快照文件);
b) Master同時將新收到的寫入和修改資料集的指令存入緩衝區(非查詢類別);
3. 當Master在後台把資料儲存到快照檔案完成之後,Master會把這個快照檔案傳送給Slave,而Slave則把記憶體清空後,載入該檔案到記憶體中;
4. 而Master也會把先前收集到緩衝區中的命令,透過Reids命令協議形式轉發給Slave,Slave執行這些命令,實現和Master的同步;
5. Master/Slave此後會不斷透過非同步方式進行命令的同步,達到最終資料的同步一致;
6. 需要注意的是Master和Slave之間一旦發生重連都會引發全量同步操作。但在2.8之後版本,也可能是部分同步操作。
更多Redis相關技術文章,請造訪Redis資料庫使用入門教學欄位學習!
以上是redis叢集怎麼同步的詳細內容。更多資訊請關注PHP中文網其他相關文章!