Redis集羣的部署

RedisCluster集羣部署步驟node

第一步前提準備條件git

須要準備的內容github

一、下載Redis安裝文件,Redis提供msi和zip文件格式的下載文件redis

下載地址:數據庫

https://github.com/microsoftarchive/redis/releaseswindows

https://github.com/ServiceStack/redis-windows/tree/master/downloadsapi

https://download.csdn.net/download/LongtengGensSupreme/12157626ruby

二、下載Ruby安裝文件app

下載地址:https://rubyinstaller.org/downloads/archives/ide

下載地址:https://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.2.4-x64.exe

三、下載Ruby環境下Redis的驅動文件,考慮到兼容性,下載版本3.2.2的redis-3.2.2.gem

下載地址:https://rubygems.org/gems/redis/versions/3.2.2

四、下載Redis官方提供的建立Redis集羣的ruby腳本文件redis-trib.rb,

下載地址:https://github.com/beebol/redis-trib.rb

 

第二步操做

安裝配置Redis

一、安裝(注:本文下面所操做的文件都是在文件根目錄是E:\Source下進行的)

(1)把下載的Redis安裝文件,安裝或者解壓到redisfile文件裏面 ,而後新建rediscluster文件夾,以後複製redisfile文件,在rediscluster文件夾下粘貼六次,爲什麼要粘貼六次呢,Redis集羣規劃至少有三個節點的集羣,每一個節點有一主一備,全部一共須要6臺虛擬主機,以後把rediscluster文件夾下粘貼的6文件以6個對應的端口來命名,6380,6381,6382,6383,6384,6385,以下圖

 

 

 

 

接着在6380文件中新建logs文件夾,存放日誌,而後修改6380文件中的redis.windows.conf文件名稱改爲redis.6380.conf,在redis.6380.conf添加下面內容,注意行與行之間以後回車換行,不能留有空格,不然沒法運行。

須要添加的信息:

port 6380

loglevel notice

logfile "E:/Source/rediscluster/6380/logs/redis6380_log.txt"

syslog-enabled yes

syslog-ident redis6380

appendonly yes

appendfilename "appendonly.6380.aof"

cluster-enabled yes

cluster-config-file nodes.6380.conf

cluster-node-timeout 15000

cluster-slave-validity-factor 10

cluster-migration-barrier 1

cluster-require-full-coverage yes

 

 

 

 

保存,以後編寫一個startredis.bat啓動服務,

startredis.bat的內容是:redis-server redis.6380.conf

雙擊startredis.bat,啓動服務,以下所示

 

 

 

 

 

同理,6381,6382,6383,6384,6385也是按照6380文件的操做方式對應修改便可。上述6380,6381,6382,6383,6384,6385所有操做完成,啓動之後,以下圖所示

 

 

 

 

 

注意:服務啓動以後不要關閉。

(固然,由於redis啓動服務使用redis-server 加載redis.windows.conf的,因此上述的操做,也 還有還有另一種方式,能夠在redisfile文件裏面1個logs文件和新建5個redis.windows.conf,改爲對應的端口名稱redis.6380.conf,redis.6381.conf,redis.6382.conf,redis.6383.conf,redis.6384.conf,redis.6385.conf,redis.windows.conf內容是上述操做的內容大體同樣的,只要修改一個日誌的輸出路徑便可)。

安裝Ruby

把下載的Ruby安裝文件rubyinstaller-2.2.4-x64.exe,進行安裝,安裝到Ruby22-x64文件夾下,注意安裝過程當中下圖步驟中要所有勾選。

 

 

 

 

安裝Ruby環境下Redis的驅動

把下載的Ruby環境下Redis的驅動文件redis-3.2.2.gem,拷貝到Ruby22-x64文件夾下

 

 

 

 

打開E:\Source\Ruby22-x64\bin文件,路徑中輸入cmd,

輸入:gem install --local E:/Source/Ruby22-x64/redis-3.2.2.gem

顯示以下圖,即表示ruby下安裝Redis驅動安裝成功

 

 

 

 

 

安裝Redis集羣的Ruby腳本

把下載的Redis建立Redis集羣的Ruby腳本redis-trib.rb文件拷貝到E:\Source\rediscluster\6380文件下,使用Redis建立Redis集羣的Ruby腳本redis-trib.rb來啓動集羣,路徑中輸入cmd  回車,

輸入:

redis-trib.rb create --replicas 1 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 127.0.0.1:6385    回車

其中--replicas 1 表示每一個主數據庫擁有從數據庫個數爲1。以前遇到錯誤提示master節點不能少於3個,輸入命令之後顯示以下界面:

redis-trib.rb create --replicas 1 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 127.0.0.1:6385, 回車

注意:

一、--replicas 1 表示每一個主數據庫擁有從數據庫個數爲1。master節點不能少於3個,因此咱們用了6個redis(即6380, 6381,6382,6383,6384,6385)

二、上面的語句執行不成功的話,能夠在前面加上ruby再運行。(本人就是加了ruby以後才建立成功的,不加ruby的話,不報錯,但會有提示)

Ruby腳本redis-trib.rb啓動集羣,以下

 

 

 

 

在出現 Can I set the above configuration? (type 'yes' to accept):   請肯定並輸入 yes 。成功後的結果以下:

 

 

 

 

 

 

第三步測試

使用Visual Studio 2019 Enterprise新建.Net Fromwork 4.7 控制檯項目ConsoleTestRedisCluster,

一、選擇項目右鍵,點擊 管理NuGet包程序,搜索StackExchange.Redis,點擊安裝,

二、添加代碼

using StackExchange.Redis;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleTestRedisCluster
{
    class Program
    {
        static void Main(string[] args)
        {
            #region 向Redis集羣的6380端口添加數據
            //使用的redis api 前提一、安裝redis 二、NuGet包管理器添加 StackExchange.Redis
            ConnectionMultiplexer _connectionMultiplexer = ConnectionMultiplexer.Connect("localhost:6380");
            IDatabase _database = _connectionMultiplexer.GetDatabase(0);
            string key1 = "set";
            string value1 = "55555";
            bool result = _database.StringSet(key1, value1);
            string messageSet = result ? "sucess" : "fail";
            Console.WriteLine($"Redis集羣的 6380 端口添加數據{key1}:{value1},結果:{messageSet}");
            _connectionMultiplexer.Close();
            #endregion

            #region 從Redis集羣的6385端獲取數據
            ConnectionMultiplexer _connectionMultiplexer1 = ConnectionMultiplexer.Connect("localhost:6385");
            IDatabase _database1 = _connectionMultiplexer1.GetDatabase(0);
            string messageGet = _database1.StringGet(key1).ToString();
            Console.WriteLine($"從Redis集羣的 6385 端口獲取 {key1} 的數據:{messageGet}");
            _connectionMultiplexer1.Close(); Console.ReadLine();
            #endregion            
        }
    }
}

 

運行結果:

 

 

 

 

附件一:

redis.6380.conf內容:

# Redis configuration file

# 端口號

port 6380

# 日誌記錄級別,notice是適合生產環境下的

loglevel notice

# 指定log的保存路徑,默認是建立在Redis的安裝目錄下,若是子目錄須要手動建立

logfile "E:/Source/RedisCluster/logs/redis6380_log.txt"

# 是否使用系統日誌

syslog-enabled yes

# 使用系統日誌時,在系統日誌中的標識名

syslog-ident redis6380

appendonly yes

# 數據保存爲aof格式

appendfilename "appendonly.6380.aof"

# 是否開啓集羣

cluster-enabled yes

# 集羣配置節點文件

cluster-config-file nodes.6380.conf

# 集羣配置超時時間

cluster-node-timeout 15000

cluster-slave-validity-factor 10

cluster-migration-barrier 1

cluster-require-full-coverage yes

相關文章
相關標籤/搜索