Redis集群的部署
RedisCluster集群部署步驟
第一步:前提準備條件
需要準備的內容
1、下載Redis安裝文件,Redis提供msi和zip文件格式的下載文件
下載地址:
https://github.com/microsoftarchive/redis/releases
https://github.com/ServiceStack/redis-windows/tree/master/downloads
https://download.csdn.net/download/LongtengGensSupreme/12157626
2、下載Ruby安裝文件
下載地址:https://rubyinstaller.org/downloads/archives/
下載地址:https://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.2.4-x64.exe
3、下載Ruby環境下Redis的驅動文件,考慮到兼容性,下載版本3.2.2的redis-3.2.2.gem
下載地址:https://rubygems.org/gems/redis/versions/3.2.2
4、下載Redis官方提供的創建Redis集群的ruby腳本文件redis-trib.rb,
下載地址:https://github.com/beebol/redis-trib.rb
?
第二步:操作
安裝配置Redis
1、安裝(注:本文下面所操作的文件都是在文件根目錄是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, 回車
注意:
1、--replicas 1 表示每個主數據庫擁有從數據庫個數為1。master節點不能少于3個,所以我們用了6個redis(即6380, 6381,6382,6383,6384,6385)
2、上面的語句執行不成功的話,可以在前面加上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,
1、選擇項目右鍵,點擊 管理NuGet包程序,搜索StackExchange.Redis,點擊安裝,
2、添加代碼
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 前提1、安裝redis 2、NuGet包管理器添加 StackExchange.RedisConnectionMultiplexer _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
總結
以上是生活随笔為你收集整理的Redis集群的部署的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中文括号和英文括号转换
- 下一篇: 2012年数学建模国赛A题(葡萄酒质量评