1. 程式人生 > >Windows 配置Reids集群 Redis Cluster

Windows 配置Reids集群 Redis Cluster

下載 com all 不支持 支持 由於 ble ech 功能

1. 下載安裝Redis

Redis官方不支持Windows,但是Microsoft Open Tech group在 GitHub上開發了一個Win64的版本,下載地址為:

下載Redis

啟動服務

redis-server redis.windows.conf

客戶端連接

redis-cli.exe -h 127.0.0.1 -p 6379

2. 安裝Ruby並配置環境

安裝Ruby,Windows可以安裝RubyInstaller,下載地址:
http://railsinstaller.org/en

gem install redis

執行 gem install redis 出現 SSL Connect error時,是因為ruby 沒有包含 SSL 證書,所以 https 的鏈接被服務器拒絕。

解決方法很簡單,首先在這裏下載證書 http://curl.haxx.se/ca/cacert.pem, 然後再環境變量裏設置 SSL_CERT_FILE 這個環境變量,並指向 cacert.pem 文件。

3. 搭建Redis集群

要讓集群正常運作至少需要三個主節點,不過在剛開始試用集群功能時, 強烈建議使用六個節點: 其中三個為主節點, 而其余三個則是各個主節點的從節點。

主節點崩潰,從節點的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). 連接集群進行測試

連接集群的指令:

redis-cli.exe -c -p 7000
set name 0000
get name

redis-cli.exe -c 7001
get name

顯示 0000 則表群集創建成功

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上的配置就完成了!

Windows 配置Reids集群 Redis Cluster