前言Redis支援多種高可用方案如Redis Sentinel 叢集和 Redis 資料叢集,但是今天我們的主題是Redis的主從複製。而且今天我們重點在於如何搭建Redis的主從複製,不著重與主從複
2021-08-26 03:04:04
Redis支援多種高可用方案如Redis Sentinel 叢集和 Redis 資料叢集,但是今天我們的主題是Redis的主從複製。而且今天我們重點在於如何搭建Redis的主從複製,不著重與主從複製的原理。廢話不多說,那麼我們就來實踐Redis主從複製的搭建。
開始動手之前,我們先簡單聊一聊什麼是主從複製?主從複製是指將一個Redis伺服器的資料,複製到其他的Redis伺服器,這就叫做主從複製。在這個現象中前者稱之為主節點(master),後者稱之為從節點(slave);資料的複製是單向的,只能由主節點到從節點。
預設情況下,每臺Redis伺服器都是主節點;且一個主節點可以有0個或者有1個以上的從節點,但一個從節點只能有一個主節點。
當我們知道了什麼是主從複製,那我們肯定也要知道為啥需要主從複製了,不然只知道怎麼去做,不知道為啥去做,也是蠻煩惱的。Redis的主從複製到底有啥用,這個我們就可以看看如果只有單機情況下的Redis宕機,我們到底會面臨啥問題,自然就能得出Redis的主從複製的作用,這裡我們就不展開說,直接給出結論。Redis的主從複製主要有以下幾種作用:
目前手裡買的伺服器都已經過期了,只能拿自己的電腦做實驗,所以直接把Redis目錄複製三份,並將每一份的配置檔案redis.conf中埠號port配置進行修改。
# 將埠號6379分別修改成下表中的樣子port 6379
需要注意的是,Redis主從複製的開啟,完全是在從節點發起的;不需要我們在主節點做任何事情。
從節點開啟主從複製,有以下三種方式:
在從伺服器的配置檔案中指定具體的master的地址,配置格式如下:
slaveof <masterip> <masterport># 如果master有密碼masterauth <master-password>
在配置檔案redis.conf中新增以下配置:
slaveof 192.168.1.103 6379 # 如果master有密碼masterauth 2021
redis-server啟動命令後加入參數 --slaveof <masterip> <masterport>,如果master有密碼,則需要加入密碼參數。 --requirepass <password> 最終的啟動命令如下:
redis-server.exe ./redis.conf --slaveof 127.0.0.1 6379 --masterauth 2021
上述3種方式最終的效果都是一樣的的,大家可以自己試一試。這裡以第二種方式為例,看一下當執行了slaveof後,Redis主節點和從節點的變化。
在master的客戶端上執行命令info replication 和client list 可以看到下圖所示的資訊:
在埠號為6381的slave上執行 info replication命令可以看到下面的資訊:
由兩張圖的資訊可以看出,埠號為6379的伺服器角色是master,埠號6380和6381的伺服器角色是slave,那麼接下來我們試試到底他們之間能不能同步資料。
從下圖可以看出master和slave都是沒有資料的(6380的機器也是一樣我就沒有放上來)
那麼我們接下來就開始測試:
set test 123
從節點已經有了資料,讀取出來資料也是正確的。
在確保slave6381已經有了上述資料之後,我們執行下面的命令斷開主從關係。
slaveof no one
記住我們在前文說到過「Redis主從複製的開啟,完全是在從節點發起的;不需要我們在主節點做任何事情」,所以這個命令是在slave6381上執行的,大家千萬別搞錯了!
slave6381執行命令之後資訊如圖所示,我們發現斷開了關係,但是slave6381上從master上同步過來的資料仍然存在。因為從節點斷開復制後,不會刪除已有的資料,只是不再同步主節點新的資料變化。
主節點列印的日誌如下圖所示,顯示slave6381已經下線。
下面是redis主從複製場景的一些可調參數,需要根據實際環境調整
綜上所述,簡單的Redis主從複製就搭建好了。另外提一下,slave 可以接受其他 slave 的連線。除了多個 slave 可以連線到同一個 master 之外, slave 之間也可以像層疊狀的結構(cascading-like structure)連線到其他 slave 。自 Redis 4.0 起,所有的 sub-slave 將會從 master 收到完全一樣的複製流。本文這裡呢只是簡單搭建一下主從複製,有興趣的同學可以自己試一試。
作者:山姆劉
連結:https://juejin.cn/post/6999831397296766989
來源:掘金
相關文章
前言Redis支援多種高可用方案如Redis Sentinel 叢集和 Redis 資料叢集,但是今天我們的主題是Redis的主從複製。而且今天我們重點在於如何搭建Redis的主從複製,不著重與主從複
2021-08-26 03:04:04
在日常工作中經常會用到excel,有時在開啟excel檔案時會彈出錯誤的提示「運行時錯誤1004」,這時該怎麼辦呢?1、先開啟任意一個excel檔案,點選【檔案】,在左側的選單列中點選【選項
2021-08-26 03:03:58
8月24日,iQOO正式公佈了前幾日推出的新款旗艦手機iQOO 8的首銷戰報。根據iQOO官方公佈的海報顯示,起售價僅為3799元的iQOO 8,成功在首銷當日零點到下午兩點,斬獲京東、天貓以及
2021-08-26 03:03:45
這一兩年,國內最火熱的行業一定是晶片產業了,眾多的企業湧入這個行業開始造芯,引發了一輪又一輪的晶片熱潮。而造芯的企業多了,對上游的裝置、材料需求也是大增,特別是半導體裝置
2021-08-26 03:03:37
根據8月25日的訊息,華為於今日釋出了一款全新系列的商用筆記本,為HUAWEI MateBook B系列,總計有4款新品,配置方面略有不同。據瞭解,HUAWEI MateBook B7-410作為該系列中的高階型
2021-08-26 03:03:31
瑪格麗特·米切爾 (Margaret Mitchell) 於 4 月在華盛頓州西雅圖市攝影師:Chona Kasinger/彭博社雷鋒網8月25日訊息,谷歌Ethical AI人工智慧倫理研究小組前負責人瑪格麗特·米
2021-08-26 03:03:24