Redis複製
Redis 支援簡單且易用的主從複製(master-slave replication)功能, 該功能可以讓從伺服器(slave server)成為主伺服器(master server)的精確複製品。
以下是關於 Redis 複製功能的幾個重要方面:
Redis 使用非同步複製。 從 Redis 2.8 開始, 從伺服器會以每秒一次的頻率向主伺服器報告複製流(replication stream)的處理進度。
一個主伺服器可以有多個從伺服器。
不僅主伺服器可以有從伺服器, 從伺服器也可以有自己的從伺服器, 多個從伺服器之間可以構成一個圖狀結構。
複製功能不會阻塞主伺服器: 即使有一個或多個從伺服器正在進行初次同步, 主伺服器也可以繼續處理命令請求。
複製功能也不會阻塞從伺服器: 只要在 redis.conf 檔案中進行了相應的設定, 即使從伺服器正在進行初次同步, 伺服器也可以使用舊版本的資料集來處理命令查詢。
不過, 在從伺服器刪除舊版本資料集並載入新版本資料集的那段時間內, 連線請求會被阻塞。
你還可以配置從伺服器, 讓它在與主伺服器之間的連線斷開時, 向客戶端傳送一個錯誤。
複製功能可以單純地用於資料冗餘(data redundancy), 也可以透過讓多個從伺服器處理只讀命令請求來提升擴充套件性(scalability): 比如說, 繁重的 SORT 命令可以交給附屬節點去執行。
可以透過複製功能來讓主伺服器免於執行持久化操作: 只要關閉主伺服器的持久化功能, 然後由從伺服器去執行持久化操作即可。
複製的原理
無論是初次連線還是重新連線, 當建立一個從伺服器時, 從伺服器都將向主伺服器傳送一個 SYNC 命令。
接到 SYNC 命令的主伺服器將開始執行 BGSAVE , 並在儲存操作執行期間, 將所有新執行的寫入命令都儲存到一個緩衝區裡面。
當 BGSAVE 執行完畢後, 主伺服器將執行儲存操作所得的 .rdb 檔案傳送給從伺服器, 從伺服器接收這個 .rdb 檔案, 並將檔案中的資料載入到記憶體中。
之後主伺服器會以 Redis 命令協議的格式, 將寫命令緩衝區中積累的所有內容都傳送給從伺服器。
你可以透過 telnet 命令來親自驗證這個同步過程: 首先連上一個正在處理命令請求的 Redis 伺服器, 然後向它傳送 SYNC 命令, 過一陣子, 你將看到 telnet 會話(session)接收到伺服器發來的大段資料(.rdb 檔案), 之後還會看到, 所有在伺服器執行過的寫命令, 都會重新傳送到 telnet 會話來。
即使有多個從伺服器同時向主伺服器傳送 SYNC , 主伺服器也只需執行一次 BGSAVE 命令, 就可以處理所有這些從伺服器的同步請求。
從伺服器可以在主從伺服器之間的連線斷開時進行自動重連, 在 Redis 2.8 版本之前, 斷線之後重連的從伺服器總要執行一次完整重同步(full resynchronization)操作, 但是從 Redis 2.8 版本開始, 從伺服器可以根據主伺服器的情況來選擇執行完整重同步還是部分重同步(partial resynchronization)。
複製的配置
Redis複製的配置非常簡單。
登陸Slave Redis,輸入命令slaveof MasterIP MasterPort即可。
Slave伺服器預設是隻讀模式,
可以由 redis.conf 檔案中的 slave-read-only 選項控制
也可以透過 CONFIG SET 命令來開啟或關閉這個模式。
轉載自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-1188514/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- redis系列--主從複製以及redis複製演進Redis
- Redis系列(四):Redis的複製機制(主從複製)Redis
- Redis - 主從複製Redis
- Redis:主從複製Redis
- Redis主備複製Redis
- redis之主從複製Redis
- Redis主從複製Redis
- 【Redis】Redis 主從複製之一Redis
- Redis 主從複製原理Redis
- redis當中的複製Redis
- Redis複製流程:圖解Redis圖解
- Redis 主從複製(Replication)Redis
- redis系列:主從複製Redis
- Redis的資料複製Redis
- redis(14)主從複製Redis
- Redis 複製實現原理Redis
- redis主從複製例子Redis
- redis學習十四、Redis主從複製Redis
- Redis 主從複製與哨兵Redis
- redis 主從複製實現Redis
- 分散式Redis主備複製分散式Redis
- redis-23.主從複製Redis
- Redis主從複製流程概述Redis
- Redis主從複製原理剖析Redis
- Redis-14-主從複製Redis
- Redis 4.0主從複製配置Redis
- Docker Redis映象 主從複製DockerRedis
- Redis複製過程詳解Redis
- redis 深入理解redis 主從複製原理Redis
- 【Redis】redis-cluster到redis-cluster的快速複製Redis
- 圖解Redis,Redis主從複製與Redis哨兵機制圖解Redis
- Redis 主從複製技術原理Redis
- 分散式Redis深度歷險-複製分散式Redis
- Redis主從複製那點事Redis
- redis-23.主從複製-概念Redis
- Redis原始碼剖析之主從複製Redis原始碼
- redis持久化和主從複製Redis持久化
- 詳談Redis主從複製原理Redis