Windows下Redis集羣安裝與部署

 

一、下載 Redis-x64-3.2.100.zip 安裝程序

二、安裝並運行redis服務

  • 解壓 Redis-x64-3.2.100.zip 後,並將當前目錄切換到Redis解壓目錄中修改 redis.windows-service.conf 配置文件
    bind 127.0.0.1
    port 9000
    loglevel warning
    #requirepass pwd
    
    cluster-enabled yes
    cluster-config-file nodes-9000.conf
    cluster-node-timeout 15000
    appendonly yes
    #protected-mode no
  • 將當前目錄切換到Redis解壓目錄,Shift+右鍵 選擇 在此處打開命令窗口 ,在cmd窗口中執行以下命令,將Redis安裝到Windows服務中
    redis-server.exe --service-install redis.windows-service-local.conf --service-name Name_Redis
  • 在服務中去啓動Redis服務【Name_Redis】
    驗證服務是否正常運行:在redis文件夾目錄中運行cmd窗口,輸入以下命令便可
    redis-cli.exe -h 127.0.0.1 -p 9000
    auth pwd

三、安裝Ruby並配置環境

  • Redis的集羣使用 Ruby 腳本編寫,因此係統須要有 Ruby 環境,下載Ruby安裝包,下載地址:https://rubyinstaller.org/downloads/
  • 下載 rubyinstaller-2.6.5-1-x64.exe / rubyinstaller-devkit-2.6.5-1-x64.exe 而且執行安裝,注意安裝時3個複選框都勾選
    如今官網下載的ruby最新版安裝以後直接就帶有gem了,不須要單獨安裝,查看版本號:ruby -v和gem -v	
    安裝(安裝目錄不能包含中文,會出現莫名其妙的問題)完成後修改【系統變量】:
    Path 須要配置 Ruby 的安裝目錄 Bin
    PATHEXT 須要配置 .RB;.RBW
  • 安裝後,經過在命令行中輸入如下命令來確保一切工做正常
    ruby -v
    顯示:ruby 2.6.5

四、搭建Redis集羣

要讓集羣正常運做至少須要三個主節點,不過在剛開始試用集羣功能時, 強烈建議使用六個節點, 其中三個爲主節點, 而其他三個則是各個主節點的從節點。
主節點崩潰,從節點的Redis就會提高爲主節點,代替原來的主節點工做, 崩潰的主Redis回覆工做後,會成爲從節點。node

  • 建立 Redis集羣 目錄,在redis安裝的根目錄下建立6個以端口命名的文件夾,將第1步安裝的redis文件夾中的文件分別拷貝到新建的6個文件夾中。
  • 更改相應的 redis.windows-service.conf 配置,而且啓動6個redis服務,命令以下
    redis-server.exe redis.windows-service.conf

五、安裝Redis的Ruby驅動【Redis-xxx.gem】

  • 下載RubyGems,下載地址:https://rubygems.org/pages/download
  • 解壓 Rubygems-3.0.6.zip 將當前目錄切換到Rubygems解壓目錄,Shift+右鍵 選擇 在此處打開命令窗口 ,在cmd窗口中執行以下命令
    ruby setup.rb
    //有關更多詳細信息和其餘選項
    ruby setup.rb --help
  • 將當前目錄切換到Redis安裝目錄,Shift+右鍵 選擇 在此處打開命令窗口 ,在cmd窗口中執行以下命令
    gem install redis

六、安裝Ruby集羣腳本 redis-trib

  • 下載腳本,下載地址:https://raw.githubusercontent.com/antirez/redis/unstable/src/redis-trib.rb

    打開連接若是沒有直接下載,可使用下載器直接下載,或者將頁面內容另存爲 redis-trib.rb 文件便可git

  • 建議將腳本文件 redis-trib.rb 存放到其中一個Redis安裝目錄中,執行以下集羣命令
    ruby redis-trib.rb create --replicas 1 192.168.1.120:9000 192.168.1.121:9000 192.168.1.120:9001 192.168.1.121:9001 192.168.1.120:9002 192.168.1.121:9002
  • Dos命令窗口若是出現 Can I set the above configuration? (type ‘yes’ to accept): 請肯定並輸入 yes,建立成功
  • Dos命令窗口若是出現 Sorry, can’t connect to node 192.168.1.121:9000,緣由是redis-trib.rb沒法處理受密碼保護的Redis節點
    對Redis節點進行密碼保護時,僅保護其主端口上的通訊(默認爲6379)。
    羣集總線上相互通訊的羣集總線(默認端口+ 10000 = 16379)上的通訊不受保護。
    所以,當單個節點受到保護時,Redis羣集實際上並非受密碼保護的。
    所以,在Redis羣集中的各個Redis節點上具備密碼幾乎不會增長安全性。
    所以,redis-trib.rb實用程序還沒有實現任何身份驗證。
  • Dos命令窗口若是出現如下提示,緣由是redis-trib.rb的連接指向官網最新的版本,須要從對應版本(redis3.2.100便可)的源碼壓縮包中src文件夾下找到對應的redis-trib.rb文件使用,便可解決問題
    WARNING: redis-trib.rb is not longer available!
    You should use redis-cli instead.
    
    All commands and features belonging to redis-trib.rb have been moved
    to redis-cli.
    In order to use them you should call redis-cli with the --cluster
    option followed by the subcommand name, arguments and options.
    
    Use the following syntax:
    redis-cli --cluster SUBCOMMAND [ARGUMENTS] [OPTIONS]
    
    Example:
    redis-cli --cluster create 127.0.0.1:9000 --cluster-replicas 1
    
    To get help about all subcommands, type:
    redis-cli --cluster help

七、連接集羣進行測試

  • 使用Redis客戶端Redis-cli.exe來查看數據記錄數,以及集羣相關信息
  • 執行命令連接集羣:redis-cli –c –h [address] –p [port]

    c:表示集羣,必須在命令中加入-c,表示啓用集羣模式
    redis-cli.exe -h 127.0.0.1 -c -p 9000
    redis-cli.exe -c -p 9000github

  • 執行 dbsize 查詢記錄總數
  • 執行 cluster info 查看集羣的信息
  • 執行set命令後,在其餘節點上能get到相應鍵值,則說明測試經過

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

至此,Redis Cluster在Windows上的配置就完成了算法

 

相關文章
相關標籤/搜索