首頁 >資料庫 >Redis >在線互相切換Redis主從實例

在線互相切換Redis主從實例

尚
轉載
2020-03-27 09:25:212166瀏覽

在線互相切換Redis主從實例

由於某些原因,我們可能需要將redis master更換機器,我們可以停機進行更換,但那樣可能會影響使用者體驗。本文簡要操作進行不停機遷移。

(建議:redis影片教學

系統環境

CentOS 6.3 x64

redis- server 2.6.16

機器兩台s1\s2

操作步驟

1、我們在新redis伺服器上,啟動一個redis實例,設定和master配置一致,不同的是設定檔中修改並啟用slave-read-only no,

讓slave 能寫,因為「Since Redis 2.6 by default slaves are read-only.」

2、讓新redis成為slave:redis 127.0.0.1:6379>SLAVEOF s1 6379

然後可以查看s2上的log,會有大量的同步訊息,也可以使用info指令查看狀態。

3、s2完全同步s1的資料後,我們修改遊戲app的redis ip,改為s2的ip。

4、查看遊戲是否正常。

5、以上沒有問題後,在s2上執行redis 127.0.0.1:6379> SLAVEOF NO ONE

6、下線s1

PS:

SLAVEOF host port

SLAVEOF 指令用於在Redis 執行時動態地修改複製(replication)功能的行為。

執行 SLAVEOF host port 指令,可以將目前伺服器轉變為指定伺服器的從屬伺服器(slave server)。

如果目前伺服器已經是某個主伺服器(master server)的從屬伺服器,那麼執行SLAVEOF host port 將使目前伺服器停止對舊主伺服器的同步,丟棄舊資料集,轉而開始對新主伺服器進行同步。

另外,對一個從屬伺服器執行指令 SLAVEOF NO ONE 將使得這個從屬伺服器關閉複製功能,並從從屬伺服器轉變回主伺服器,原來同步所得的資料集不會被丟棄。

利用『 SLAVEOF NO ONE 不會丟棄同步所得資料集』這個特性,可以在主伺服器失敗的時候,將從屬伺服器用作新的主伺服器,從而實現無間斷運作。

可用版本:

>= 1.0.0

時間複雜度:

SLAVEOF host port ,O(N), N 為要同步的數據數量。

SLAVEOF NO ONE , O(1) 。

傳回值:

總是傳回 OK 。

更多redis知識請關注redis入門教學欄位。

以上是在線互相切換Redis主從實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:ttlsa.com。如有侵權,請聯絡admin@php.cn刪除