Redis官方不支持Windows,可是Microsoft Open Tech group在 GitHub上開發了一個Win64的版本,下載地址爲:node
下載Redisredis
啓動服務算法
redis-server redis.windows.conf
windows
客戶端鏈接ruby
redis-cli.exe -h 127.0.0.1 -p 6379
服務器
安裝Ruby,Windows能夠安裝RubyInstaller,下載地址:
http://railsinstaller.org/enapp
gem install rediscurl
執行 gem install redis 出現 SSL Connect error時,是由於ruby 沒有包含 SSL 證書,因此 https 的連接被服務器拒絕。測試
解決方法很簡單,首先在這裏下載證書 http://curl.haxx.se/ca/cacert.pem, 而後再環境變量裏設置 SSL_CERT_FILE 這個環境變量,並指向 cacert.pem 文件。url
要讓集羣正常運做至少須要三個主節點,不過在剛開始試用集羣功能時, 強烈建議使用六個節點: 其中三個爲主節點, 而其他三個則是各個主節點的從節點。
主節點崩潰,從節點的Redis就會提高爲主節點,代替原來的主節點工做,崩潰的主Redis回覆工做後,會成爲從節點
1). 建立Redis集羣目錄
在redis安裝的根目錄下建立6個以端口命名的文件夾
mkdir 7000 7001 7002 7003 7004 7005
2). 更改配置
將六個文件夾下的redis.windows.conf文件中如下屬性進行修改:
port 7001(對應文件夾的端口號) cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes
dir C:\Java\Redis\7000\ --對應的端口目錄
3). 啓動6個redis服務
進入每一個端口命名的文件夾下啓動服務
4). 建立啓動集羣
因爲建立啓動集羣須要redis-trib.rb文件,它是一個 Ruby 程序, 這個程序經過向實例發送特殊命令來完成建立新集羣,檢查集羣或者對集羣進行從新分片(reshared)等工做。
Windows的redis安裝文件中是沒有這個文件的,咱們須要去官網下載Redis,官網的Redis是Linux版本,在其源碼src文件夾下,將redis-trib.rb拷貝到本機中Redis的安裝目錄中
最後進入redis-trib.rb文件所在目錄執行:
ruby redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
這個命令在這裏用於建立一個新的集羣, 選項–replicas 1 表示咱們但願爲集羣中的每一個主節點建立一個從節點。以後跟着的其餘參數則是這個集羣實例的地址列表,3個master3個slave
redis-trib 會打印出一份預想中的配置給你看, 若是你以爲沒問題的話, 就能夠輸入 yes ,redis-trib 就會將這份配置應用到集羣當中,讓各個節點開始互相通信。
5). 鏈接集羣進行測試
鏈接集羣的指令:
set name 0000
get name
redis-cli.exe -c 7001
get name
顯示 0000 則表羣集建立成功
redis-cli.exe -c -p 7000
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
被分配到了7001端口的redis服務上。
至此,Redis Cluster在Windows上的配置就完成了!