windows如何搭建redis集群


操作系統:win10 64位

redis版本:3.2.1-x64

ruby版本:2.5.1-1-x64

rubygems版本:2.7.6

 

 今天突然想簡單的搭建一個redis的集群,因為系統是Windows上的,所以就網上查找了一番搭建集群的相關博客和攻略,經過各種問題后,成功運行了。現在記下來,省的忘記了。。。

    其中相關程序的版本經過搭建后,就暫時確立為以上版本,放在百度雲盤上,地址:https://pan.baidu.com/s/1D5Xyl-3fonr8mKUlNQA2Ug,密碼:00x5。搭建過程中出現過一些問題,有些是因為ruby版本太低,有些是安裝不正確等各種因素,具體的一些原因可以查看博客https://blog.csdn.net/asas1314/article/details/50203923,上面總結的挺好的,就不詳細講了。

一、 下載redis

    下載上述百度雲盤中的redis,解壓到任意文件夾中,我直接下載到桌面上了,就干脆解壓到桌面上去了,里面文件如下所示(其中的redis-trib.rb是沒有的,需要另外下載的):

 
 
 

二、 配置三主三從集群

解壓后,將redis復制五份,配置三主三從集群,由於redis默認端口為6379,所以另外五份分別為6380,6381,6382,6383,6384。我建立的如下所示:

其中每一個文件夾都是一個redis

 

三、 修改每一份redis的配置

    以6379為例,打開文件夾中的redis.windows.conf文件,分別修改里面的如下數據:

    port 6379                 //修改默認端口,與文件夾相同即可

    cluster-enabled yes        //開啟實例的集群模式

    cluster-config-file nodes-6379.conf        //設定保存節點配置文件的路徑,節點文件自動生成,無需修改

    cluster-node-timeout 15000      //調整為  15000,那么在創建集群的時候,不會超時。

    appendonly yes            //開啟appendonly模式后,redis將每一次寫操作請求都追加到appendonly.aof文件中

 注意:修改配置文件的時候去掉注釋的部分,前面不能有空格

    同時還有一個文件 redis.windows-service.conf也需要修改相同之處,保存即可

 

    另外,在每個文件夾中寫一個bat用來啟動redis,內容如下:

    title redis-6379

    redis-server.exe redis.windows.conf

    建立完成之后,可以分別點擊每個文件夾中的bat,啟動每個redis。

 

四、 安裝ruby

    redis建立的的集群需要ruby環境,所以下載雲盤中的rebyinstaller,全部下一步,該勾選的全部勾選上,

    路徑選擇其他或者默認即可。之前因為下載安裝的2.4.4-1的版本,安裝之后出現了點問題,所以升級了ruby為2.5.1-1的版本。

 

五、 安裝rubygems

    下載雲盤的版本后解壓縮,啟動cmd進入到解壓后的文件夾中,直接運行ruby setup.rb執行安裝即可

 

 

上面的命令執行安裝完后,接着執行命令 gem install redis,安裝redis的相關依賴。

 

 

六、下載集群腳本redis-trib.rb

    可以用雲盤上傳的那個。或者在百度下載其他腳本,我是將文件放到了D:/Redis目錄下

 

 

七、 執行集群構建腳本

    進入到redis-trib.rb所在的文件夾中,執行命令redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380

    127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384,即可構建集群。

其中會出現Can I set the above configuration? (type 'yes' to accept),輸入yes,

最后出現兩個OK的時候差不多就是構建成功了。其中上面也可以看到主從節點的對應關系,如圖:

 

 

八、 測試集群

例如進入6379的文件夾,輸入命令redis-cli.exe -h 127.0.0.1 -p 6379 -c(h自然是主機號,p是端口號,c連接集群結點時使用,此選項可防止moved和ask異常。)后,

開啟redis,然后,例如輸入一個set name hello,然后集群會自動將這個保存到6380的redis中,集群之間也會自動的跳轉過去,然后在6380中去get name,自然可以獲取的到。

 

九、 關閉和重新啟動集群

    網上查看了很久,似乎關閉和重新啟動集群主要是關閉redis服務和重新啟動redis服務,其中靠譜的解答如下:

(1)通過redis-cli連接服務器后執行shutdown命令,則執行停止redis服務操作。

(2)可以使用shutdown命令關閉redis服務器外,還可以使用kill+進程號的方式關閉redis服務。

(3)不要使用Kill 9方式關閉redis進程,這樣redis不會進行持久化操作,除此之外,還會造成緩沖區等資源不能優雅關閉,極端情況下會造成AOF和復制丟失數據的情況

(4)shutdown還有一個參數,代表關閉redis服務前是否生產持久化文件

     shutdown save|nosave


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM