環境以及引用資料
1.windows server 2008 r2 enterprise (木有辦法,公司的服務器全是如此,就這種環境搭建吧)
2.redis官方資料下載: https://redis.io/download
3.redis官方沒有提供相關的程序包,但是Microsoft Open Tech group提供並維護了相關的redis安裝包 https://github.com/MSOpenTech/redis(只是提供64位程序)
這里說一句,很多公司的redis都是部署在linux上的,我這里只是針對需要在window環境下搭建redis集群做安裝部署。
安裝包下載
安裝成功后,這里安裝的是單個redis服務。找到安裝路徑,當前機器安裝在:D:\Redis
以管理員打開控制台,將redis-cli.exe拖入其中,回車,驚喜的看到,我安裝成功了,安裝部成功的伙伴們自己去找問題吧。簡單的加幾個數據
Set a test
get a
如下圖,都成功了。
2.Ruby環境
安裝此環境的原因是因為我們需要使用Ruby Gems 中的redis-trib.rb來創建和操作集群。
通過此Ruby包管理來獲取操作Redis集群的redis-trib.rb
3.1 解壓安裝包后,點擊setup.rb安裝。
3.2 首先,為了防止被牆,我們需要把鏡像指向新的地址,打開一個控制台
gem sources --remove https://rubygems.org/ 刪掉原來的源
gem sources -a http://gems.ruby-china.org/ 添加新源
gem sources -l 查看現有的源
gem install redis 安裝redis依賴
集群搭建
通過上述步驟,搭建了一個Redis服務,在服務管理器中也可以看到此服務。(注意服務器端口),同時我們也搭建了配置redis集群的ruby環境。下面就是講述如何搭建redis集群。
在官方cluster文檔中,最小集群需要至少包含三個主節點。對於您的第一次測試,強烈建議啟動具有三個主站和三個從站的六個節點群集。
我的集群式在此服務器中搭建3個master+3個Slave,總共6個節點。關於數據發布的問題,后續對redis研究深入的時候,再寫文章記錄分享下。
開始時候,我們安裝了一個redis實例,默認端口是6379,准備新創建的6個節點分別是 6380,6381,6382,6383,6384,6385,然后將下載下來的壓縮包文件都放進去,這樣我們就創建了6個節點,下面就是分別對各個節點進行配置。
在每一個文件夾添加配置文件 redis.conf ,將配置修改為以下
port 7005 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes
然后開啟redis服務,具體開啟控制台,在當前文件夾執行
redis-server.exe redis.conf
所有服務開啟成功后如下,到此時,我們在單台服務器上創建了6+1個redis實例(開始安裝的時候創建了一個redis實體)
后續部署不可能用控制台來host服務,下面介紹如何用把redis部署到服務當中,在控制台分別執行以下命令,請伙伴們注意你的服務名稱要按照自己的需求修改。我這里直接Redis+端口來創建了
redis-server --service-install redis.conf --service-name redis6380
創建成功后我們看到數據庫里面有6個服務 ,把服務啟動起來,有空的話,可以用控制台去看看對應服務是否可以正常添加刪除數據。
節點都創建好了,那么下面的工作就是如何來創建集群了。
創建集群時候,我們用到了redis-trib.rb文件
文件在下載下來的redis包里可能是沒有的,可以到
https://github.com/antirez/redis/tree/unstable/src 目錄下下載
之前的ruby環境就是為運行這個文件做准備的
輸入創建集群命令,注意,這個時候要檢查下服務器當前的端口6380-6385是否已經打開,沒有打開的話創建會失敗的。
D:\RedisCluster\6380>redis-trib.rb create --replicas 1 192.168.123.90:6380 192.168 .123.90:6381 192.168.123.90:6382 192.168.123.90:6383 192.168.123.90:6384 192.168 .123.90:6385
集群環境搭建好后,會出現如下界面,3master+3slave,同時我們每個節點會找到nodes.conf,這里記錄了節點在集群中的一些信息,有興趣可以去分析下。
輸入yes就行了
創建成功了,16384個槽位都被覆蓋了,這里簡單說下redis的原理,對key 做 CRC16 校驗和后,按照槽位分配在不同的服務器上。在上述信息上,我們可以清楚的看到數據分布在那台服務器上。
最后,我們簡單的來測試下數據的增加和獲取吧。
老樣子,在cmd窗口用redis-cli來處理數據,注意命令和非集群相比加了一個-c
redis-cli -h 192.168.123.90 -p 6380 -c
到了這里,怎么能忘記我們最喜歡的一句話呢:hello,world
可以清晰的看到數據放到6382節點去了,好了,redis cluster在windows下集群搭建就這樣了,后續我會把里面使用到的包房后面