redis數據同步

redis數據主從同步,僅僅是爲了做一個測試(在本地部署兩個redis的服務)

redis的數據同步源於對mysql的數據庫讀寫分離理解

一:mysql的數據同步的流程如下如所示,Master將數據修改記錄存儲在binary log中,Slave通過I/O將二進制文件拷貝到中繼日誌(relay log),Slave讀取中繼日誌並對其數據庫進行對應的操作。



(以上的步驟只是用於簡單的理解,深一步瞭解請自行查詢)

二:在單機模式模擬數據同步

 1:在我的資源中下載redis的安裝包(也可以使用其他),複製兩份來模擬Master和Slave,分別取名爲redisMasterSevice和redisSlaveService

    2:修改Master和Slave的配置 

        Master中找到配置文件redis.windows.conf(windows中的名稱,linux找到對應的配置文件),中找到綁定的IP地址,本文中是在本地進行測試所以綁定的地址爲127.0.0.1,在服務器綁定爲對應的IP地址,配置如下圖所示

        Slave中找到配置文件redis.windows.conf(windows中的名稱,linux找到對應的配置文件),將默認的端口號更改爲非6379和其他未佔用端口(我修改爲6380);


        同理綁定的地址爲127.0.0.1,如果是服務器更改綁定地址爲對應的地址;


      修改Master和Slave的對應關係,在Slave中的配置文件中搜索# slaveof <masterip> <masterport>,我們在下面按照格式添加Master的配置類似 slaveof  MasterIP地址  Master端口,如下圖


三:分別啓動Master和Slave服務

    啓動Master服務。通過cmd跳轉到redisMasterService文件夾下,輸入redis-server.exe redis.conf啓動Master服務

    啓動Slave服務,方法如啓動Master服務

slave服務啓動後出現如下,修改配置之後slave服務會在啓動之後主動連接Master服務(SYNC),然後通過flush、load來將Master數據同步到slave



四:進行測試是否數據同步

     同樣打開兩個窗口來操作reids(之前運行得服務端不可關閉),對應到Master的文件夾下,輸入redis-cli.exe -p 6379 進入客戶端,輸入flushdb命令清空緩存數據,然後數據一個簡單的命令set key1 value1 來存入Master中


   新打開cmd窗口, 對應到Slave的文件夾下 ,輸入redis-cli.exe -p 6380進入客戶端,輸入get key1看是否獲取到數據value1

這樣看來Slave獲取到了Master中的數據,完成了同步

發佈了5 篇原創文章 · 獲贊 5 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章