Redis四大模式之主從配置
Redis工作模式主要有單機模式、主從模式(slave)、哨兵模式(sentinel)、叢集模式(cluster)這四種,本文主要講解一下主從模式的部署方式。
我是windows單機進行的這套搭建操作,linux系統下搭建也是同樣的,要點都是對配置檔案進行一些更改。redis大家可以直接去官網https://redis.io/download下載,linux也可根據頁面上的指示輸入相應的指令下載。
首先準備master的配置檔案(redis.windows-service.conf),主要有port(埠號,預設是6379)、requirepass(密碼)、dbfilename(資料持久化檔案)、logfile(日誌檔案),這裡我就不更改埠號和不設定密碼了,所以直接使用預設的配置就可以,master-slave模式下,作為master的redis是不需要額外配置的。接下來進去redis目錄,執行redis-server.exeredis.windows-service.conf即可,然後到windows服務列表(cmd窗體輸入services.msc回車進入)中開啟redis服務即可。回到redis目錄,雙擊redis-cli.exe,出現以下介面則成功連線上了埠號為6379的redis服務。
接下來配置第一臺slave的redis。新建redis-6380目錄,並複製配置檔案redis.windows-service.conf和redis-server.exe 到redis-6380目錄下。開啟redis.windows-service.conf進行編輯,更改埠號為6380,slave規則新增一條slaveof 127.0.0.1 6379。完整的配置如下:
port 6380
dbfilename dump.rdb
logfile "server_log.txt"
slaveof 127.0.0.1 6379
cluster-enabled no
其中cluster-enabled no配置預設是 #cluster-enabled yes,可以不用更改,如果去掉遮蔽就必須更改為no,因為redis的cluster模式和slave模式是互斥的。slaveof 127.0.0.1 6379這裡的值就是maste模式redia的ip和埠號,如果master設定了密碼,則還需要新增“masterauth masterpassword”一項配置。然後命令列窗體進入redis-6380目錄,執行redis-server.exeredis.windows-service.conf --service-name Redis6380,轉到windows服務列表啟動名為redis6380的服務就可以了,到現在作為slave模式執行的redis服務就正常運行了。
開啟redis-6380目錄下的server_log_6380.txt檔案可以看到以下介面,注意紅色框部分,表示當前slave節點已經成功從master節點同步資料了:
至此,一個master-slave模式的redis系統就部署完成,並且成功運行了。接下來我們測試一下在master節點寫入的資料,能否正常同步到slave節點裡面;
在剛才的redis-cli.exe介面輸入set test-slave 'test slave of port 6380',成功執行如下:
回到slave節點的客戶端連線,我用的是命令列窗體,進入redis-6380目錄,執行redis-cli.exe -h 127.0.0.1 -p 6380命令,回車,然後輸入 get test-slave,得到如下介面的結果:
這就是剛才在master幾點存入的test-slave鍵值的資料,由此執行在6380埠的slave模式redis已經能成功同步到6379埠的master模式下的資料了。
redis主從模式下,master模式的redis是不需要額外配置的,和單機模式下的配置一樣,只需要更改slave模式的配置,新增slaveof masterip masterport,如果開啟了cluster模式,必須要關閉,同時,如果master設定了訪問密碼,則slave需要配置masterauth masterpassword 一項。