Windows版Redis集群部署

由于当前系统技术栈需要,跑的主机都是Windows系统,用到Redis,所以整了个Win下的Redis部署集群。

目录

环境说明

组件列表清单

各组件安装部署具体流程

下载安装Redis

下载安装ruby

下载ruby环境下Redis驱动

下载Redis官方提供的创建Redis集群的ruby脚本redis-tirb.rb

创建Redis集群

性能测试

参考资料


环境说明

  • 操作系统:Windows Server 2012 R2 x64
  • CPU:4核
  • 内存:8GB

目前已单台服务器部署集群为例,部署多台服务器类似。因Redis是单线程处理,多核CPU也只能使用一个核,所以部署在同一台电脑上,通过运行多个Redis实例组成集群,从而提高CPU利用率。

组件列表清单

  • Redis:Windows下使用微软编译发布V3.0.504版本
  • Ruby:Ruby语言环境V2.2.4-x64
  • Redis的Ruby驱动:redis-3.2.2.gem
  • 创建Redis集群工具:redis-trib.rb

各组件安装部署具体流程

  • 下载安装Redis

下载地址https://github.com/microsoftarchive/redis/releases

Redis提供msi和zip格式下载文件,这里下载zip格式3.0.504版本。将下载到的Redis-x64-3.0.504.zip解压即可,建议放在盘符更目录下,并修改目录名为Redis,如D:\Redis或E:\Redis。

      通过配置文件来启动6个不同的Redis实例,分别3个主节点和3个从节点,端口分配为6380、6381、6382、6390、6391、6392。

      每个实例都有各自配置文件。

      配置文件中以下两种保存日志的方式(保存在文件中、保存到System Log中)请根据需求选择其中一种即可:

  loglevel notice                  #日志的记录级别,notice是适合生产环境的

  logfile "Logs/redis6380_log.txt"      #指定log的保持路径,默认是创建在Redis安装目录下,如果有子目录需要手动创建,如此处的Logs目录

    syslog-enabled yes      #是否使用系统日志   

  syslog-ident redis6380   #在系统日志的标识名

      这里使用保存在文件中的方式,所以先在Redis目录D:/Redis下新建Logs文件夹。

      redis.windows-service.6380.conf 内容如下:

port 6380  
loglevel notice  
logfile "Logs/redis6380_log.txt"  
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  

redis.windows-service.6381.conf 内容如下:

port 6381
loglevel notice  
logfile "Logs/redis6381_log.txt"  
appendonly yes  
appendfilename "appendonly.6381.aof"  
cluster-enabled yes                    
cluster-config-file nodes.6381.conf  
cluster-node-timeout 15000  
cluster-slave-validity-factor 10  
cluster-migration-barrier 1  
cluster-require-full-coverage yes  

redis.windows-service.6382.conf 内容如下:

port 6382
loglevel notice  
logfile "Logs/redis6382_log.txt"  
appendonly yes  
appendfilename "appendonly.6382.aof"  
cluster-enabled yes                    
cluster-config-file nodes.6382.conf  
cluster-node-timeout 15000  
cluster-slave-validity-factor 10  
cluster-migration-barrier 1  
cluster-require-full-coverage yes  

redis.windows-service.6390.conf 内容如下:

port 6390
loglevel notice  
logfile "Logs/redis6390_log.txt"  
appendonly yes  
appendfilename "appendonly.6390.aof"  
cluster-enabled yes                    
cluster-config-file nodes.6390.conf  
cluster-node-timeout 15000  
cluster-slave-validity-factor 10  
cluster-migration-barrier 1  
cluster-require-full-coverage yes  

redis.windows-service.6391.conf 内容如下:

port 6391
loglevel notice  
logfile "Logs/redis6391_log.txt"  
appendonly yes  
appendfilename "appendonly.6391.aof"  
cluster-enabled yes                    
cluster-config-file nodes.6391.conf  
cluster-node-timeout 15000  
cluster-slave-validity-factor 10  
cluster-migration-barrier 1  
cluster-require-full-coverage yes  

redis.windows-service.6392.conf 内容如下:

port 6392
loglevel notice  
logfile "Logs/redis6392_log.txt"  
appendonly yes  
appendfilename "appendonly.6392.aof"  
cluster-enabled yes                    
cluster-config-file nodes.6392.conf  
cluster-node-timeout 15000  
cluster-slave-validity-factor 10  
cluster-migration-barrier 1  
cluster-require-full-coverage yes  

配置内容解释:

port 6380       #端口号  
loglevel notice    #日志的记录级别,notice是适合生产环境的  
logfile "Logs/redis6380_log.txt"      #指定log的保持路径,默认是创建在Redis安装目录下,如果有子目录需要手动创建,如此处的Logs目录  
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\cluster\目录下,并使用这些配置文件安装6个Redis服务,命令如下:注:redis.6380.conf等配置文件最好使用完整路径,避免重启Redis集群出现问题。

D:\Redis\redis-server.exe --service-install D:\Redis\cluster\redis.windows-service.6380.conf --service-name redis6380    
D:\Redis\redis-server.exe --service-install D:\Redis\cluster\redis.windows-service.6381.conf --service-name redis6381    
D:\Redis\redis-server.exe --service-install D:\Redis\cluster\redis.windows-service.6382.conf --service-name redis6382    
D:\Redis\redis-server.exe --service-install D:\Redis\cluster\redis.windows-service.6390.conf --service-name redis6390    
D:\Redis\redis-server.exe --service-install D:\Redis\cluster\redis.windows-service.6391.conf --service-name redis6391    
D:\Redis\redis-server.exe --service-install D:\Redis\cluster\redis.windows-service.6392.conf --service-name redis6392

 启动服务,命令如下:

D:/Redis/redis-server.exe --service-start --service-name redis6380  
D:/Redis/redis-server.exe --service-start --service-name redis6381  
D:/Redis/redis-server.exe --service-start --service-name redis6382  
D:/Redis/redis-server.exe --service-start --service-name redis6390  
D:/Redis/redis-server.exe --service-start --service-name redis6391  
D:/Redis/redis-server.exe --service-start --service-name redis6392  

执行结果:

 

  • 下载安装ruby

下载路径:http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.2.4-x64.exe

下载后,双击安装即可,同样,为了操作方便,也是建议安装在盘符根目录下,如: C:\Ruby22-x64 ,安装时这里选中后两个选项,意思是将ruby添加到系统的环境变量中,在cmd命令中能直接使用ruby的命令。

 

  • 下载ruby环境下Redis驱动

考虑到兼容性,这里下载3.2.2版本https://rubygems.org/gems/redis/versions/3.2.2

安装该驱动,假如驱动文件放在C:/Ruby22-x64/下,命令如下: 

 

gem install --local C:/Ruby22-x64/redis-3.2.2.gem

  • 下载Redis官方提供的创建Redis集群的ruby脚本redis-tirb.rb

路径:https://raw.githubusercontent.com/MSOpenTech/redis/3.0/src/redis-trib.rb

打开该链接如果没有下载,而是打开一个页面,那么将该页面保存为redis-trib.rb,建议保存到Redis的目录下。

注意:因为redis-trib.rb是ruby代码,必须用ruby来打开,若redis-trib.rb无法识别,需要手动选择该文件的打开方式:

 

 

  • 创建Redis集群

CMD控制台切换到Redis目录,使用redis-trib.rb脚本来创建Redis集群:

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:6390 127.0.0.1:6391 127.0.0.1:6392

其中,replicas 参数为1,说明一个主分配一个副本从节点,参数为0,说明都是主节点。

 

      当出现提示时,需要手动输入yes,输入后,当出现以下内容,说明已经创建了Redis集群。

      检验是否真的创建成功,输入以下命令:

redis-trib.rb check 127.0.0.1:6380

 

 

使用Redis客户端Redis-cli.exe来查看数据记录数,以及集群相关信息

     

redis-cli.exe -c -p 6380

redis-cli常用命令:

      dbsize:查询记录总数

      cluster info:查看集群的信息

      更多指令:https://redis.io/commands

  • 性能测试

使用自带工具进行性能测试,命令如下:

redis-benchmark.exe -h 127.0.0.1 -p 6380 -q -n 100000

 

     

开启流水线,命令如下:

   redis-benchmark -n 1000000 -t set,get -P 16 -q -p 6380

   

 

在个人笔记本上性能测试,还算可以了吧。

以上不足之处,还请帮忙指出,多多指教。

 

参考资料

 

Windows下搭建Redis集群

Redis集群的原理和搭建

redis-trib.rb工具的使用

 

大家好,我是Kimihong,多年程序员,用过C/C++/Java/C#,写过Android程序,正在学习Python,对GO感兴趣,擅长后端开发。有个weixin公众号叫『阿尔法电子』,专注于计算机科学技术/科技趣闻/创意DIY/分享,每周至少更新一次,期待你的关注,和我一起学习、成长。转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值