1. 程式人生 > >Windows下Redis Sentinel部署(包含Redis Replication)

Windows下Redis Sentinel部署(包含Redis Replication)

 網上未發現太多windows下部署Redis Replication和Redis Sentinel的技術貼,在學習過程中總結下

命令列工具:PowerCMD (windows自帶的命令列工具不友好,另外,無法在PowerCMD上使用redis自帶的客戶端工具···知道解決辦法的網友留個言

1. 準備


命令列工具:PowerCMD (windows自帶的命令列工具不友好,另外,無法在PowerCMD上使用redis自帶的客戶端工具···知道解決辦法的網友留個言

架構:
  1個主庫(master) 埠:6379
  1個從庫(slave)    埠:6380
  1個sentinel端         埠:26379 
2.安裝Redis

介質解壓到你想要的地方(不要有中文目錄),比如E:\Programs(別放在C盤 管理員許可權麻煩)
開啟PowerCMD,使用cd命令切換目錄到E:\Programs,執行 redis-server.exe redis.conf 
預設啟動埠6379
 
登入客戶端去驗證下登入(不能在PowerCMD上使用,使用windows自帶CMD)
切換到E:\Programs,執行redis-cli.exe -h 127.0.0.1 -p 6380
停止server端服務(直接在PowerCMD中ctl+c或者在剛剛的windows的cmd命令列中輸入shutdown)
停止客戶端服務
3.部署主從/Replication(很像Oracle的dataguard)

關掉服務,複製整個Redis目錄並重命名為Redis-x64-Slave(作為從庫)
複製整個Redis目錄並重命名為Redis-x64-Sentinel(待會要用)
 從庫(Slave)修改redis.windows.conf檔案(用文字編輯器修改) 
port 6379改為port 6380 (如下圖

 
再修改新增
slaveof 127.0.0.1 6379
 

埠別搞錯!
cd到從庫目錄,執行redis-server.exe redis.windows.conf
 
windows自帶命令列登入主庫:redis-cli.exe -h 127.0.0.1 -p 6379
執行info Replication檢視配置

127.0.0.1:6379> info Replication
# Replication
role:master
connected_slaves:1
slave0:ip=127.0.0.1,port=
master_repl_offset:99
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_o
repl_backlog_histlen:98

登入從庫
127.0.0.1:6380> info Replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6379
master_link_status:up
master_last_io_seconds_ago:8
master_sync_in_progress:0
然後可以插入資料測試下同步情況至此,Replication從庫部署完畢
4.部署Sentinel
進入剛剛複製好的Redis-x64-Sentinel目錄
新建sentinel.conf檔案
編輯新增如下內容
port 26379
#master
sentinel monitor master 127.0.0.1 6379 1
sentinel down-after-milliseconds master 5000
sentinel failover-timeout master 180000
sentinel parallel-syncs master 1

注意:port 26379為sentinel的埠,別和主庫埠搞混!


cd到Redis-x64-Sentinel目錄
啟動sentinel服務:redis-server.exe sentinel.conf --sentinel
 
接下來執行故障轉移測試
win自帶的CMD登入主庫:執行shutdown
從sentinel端看到的情況
 
從庫變為master
再次啟動原來的主庫
sentinel端檢視情況
原來的master變為slave
 
用cmd登入原來的主庫和從庫
 
 

主動執行主備切換,切換後原來的主庫還是主庫
登入sentinel端
執行:SENTINEL failover mymaster
 
登入主庫檢視情況
 
在sentinel端檢視

 

登入主庫檢視配置

 

主備切換後,會發現配置檔案發生了改變

 

參考連結:
http://mamicode.com/info-detail-401194.html