一、下載windows版本的Redisnode
官網只提供linux版本的下載linux
官網下載地址:http://redis.io/downloadgit
github下載地址:https://github.com/MSOpenTech/redis/tagsgithub
解壓以後,拷貝到自定義的Redis目錄下,例如D:\Redis\Redisredis
打開cmd,切換到Redis目錄下,執行算法
redis-server redis.windows.conf
再從新打開一個cmd窗口,鏈接Redis執行數據庫
redis-cli.exe -h 127.0.0.1 -p 6379
2. 安裝Ruby並配置環境
redis的集羣使用 ruby腳本編寫,因此係統須要有 Ruby 環境 ,下載地址: http://dl.bintray.com/oneclick/rubyinstaller/windows
程序: rubyinstaller-2.3.3-x64.exeruby
安裝時3個選項都勾選app
注意:系統變量裏面 path 須要配置 ruby的安裝目錄bin
PATHEXT 須要配置 .RB;.RBW
3. 搭建Redis集羣
要讓集羣正常運做至少須要三個主節點,不過在剛開始試用集羣功能時, 強烈建議使用六個節點: 其中三個爲主節點, 而其他三個則是各個主節點的從節點。
主節點崩潰,從節點的Redis就會提高爲主節點,代替原來的主節點工做,崩潰的主Redis回覆工做後,會成爲從節點
1). 建立Redis集羣目錄
在redis安裝的根目錄下建立6個以端口命名的文件夾
將安裝的redis文件夾中的redis.windows.conf以及redis-server,分別拷貝到新建的六個文件夾中
2). 更改配置
將六個文件夾下的redis.windows.conf文件中如下屬性進行修改:
port 9000 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 15000 appendonly yes
3). 啓動6個redis服務
進入每一個端口命名的文件夾下啓動服務
啓動命令:redis-server.exe redis.windows.conf
或者用下面的命令建立一個bat文件啓動
title redis-9000 redis-server.exe redis.windows.conf
其餘幾個目錄同上(端口對應各自的端口)
而後把把這幾個節點都啓動起來
4. 安裝Redis的Ruby驅動redis-xxxx.gem
下載地址 https://rubygems.org/pages/download, 下載後解壓,當前目錄切換到解壓目錄中,如 D:\Program Files\redis\rubygems-2.6.12 而後在命令行執行 ruby setup.rb。
而後GEM 安裝 Redis :切換到redis安裝目錄,須要在命令行中,執行 gem install redis
5 安裝集羣腳本redis-trib
下載地址 https://raw.githubusercontent.com/antirez/redis/unstable/src/redis-trib.rb
打開該連接若是沒有下載,而是打開一個頁面,那麼將該頁面保存爲redis-trib.rb,建議保存到一個Redis的目錄下,例如放到Redis目錄下。
集羣的命令爲
ruby redis-trib.rb create --replicas 1 127.0.0.1:9000 127.0.0.1:9001 127.0.0.1:9002 127.0.0.1:9003 127.0.0.1:9004 127.0.0.1:9005
--replicas 1 表示每一個主數據庫擁有從數據庫個數爲1。master節點不能少於3個,因此咱們用了6個redis
6. 鏈接集羣進行測試
鏈接集羣的指令:
方式1:
redis-cli.exe -h 127.0.0.1 -c -p 9000
方式2:
redis-cli.exe -c -p 9000
執行set 命令咱們能看到集羣起效,把值存到 9001 節點上了
Redis集羣數據分配策略:
採用一種叫作哈希槽 (hash slot)的方式來分配數據,redis cluster 默認分配了 16384 個slot,當咱們set一個key 時,會用CRC16算法來取模獲得所屬的slot,而後將這個key分到哈希槽區間的節點上,具體算法就是:CRC16(key) % 16384
注意的是:必需要3個之後的主節點,不然在建立集羣時會失敗,三個節點分別承擔的slot 區間是:
節點A覆蓋0-5460; 節點B覆蓋5461-10922; 節點C覆蓋10923-16383.
因此上圖中按照redis cluster的哈希槽算法:CRC16(‘name’)%16384
被分配到了9001端口的redis服務上。
至此,Redis Cluster在Windows上的配置就完成了