redis在Windows下以后台服务一键搭建集群(多机器)

redis在Windows下以后台服务一键搭建集群(多机器)

 

一、概述

此教程介绍如何在windows系统中多台机器之间布置redis集群,同时要以后台服务的模式运行。布置以脚本的形式,一键完成。多台机器之间布置集群比单台机器布置伪集群复杂得多,关于单机伪集群布置,参见另博文《redisWindows下以后台服务一键搭建集群(单机--伪集群)》。

二、准备的工具与环境

此节准备环境部分,与《redisWindows下以后台服务一键搭建集群(单机--伪集群)》说明一样,不同的是,环境可以只在其中一台机器上配置即可,然后最后操作执行集群的指令也只能在此台机器完成。

2.1资源下载

以下准备的工具,想要了解详细过程的,可以逐一按下面的分步说明,一一下载。当然,不想麻烦的,这里有一个包含所有工具的完整的包,直接下载即可,csdn下载链接:http://download.csdn.net/download/mingojiang/10188229

 

1.下载Redis for windows的最新版本,解压到c:\redis目录下备用。github下载链接:https://github.com/MSOpenTech/redis/releases

 

2.下载ruby环境RubyInstaller,这是ruby的运行环境。官网下载:http://rubyinstaller.org/downloads/ 我选的是Ruby 2.3.3 (x64)”。

 

3,安装 GEMRedisruby支持环境由于GFW的问题,GEM的源在国内不可用,可以@##墙,提供一下免费&&@#墙工具,百度网盘下载链接:https://pan.baidu.com/s/1eSiLWo6密码: enfm,下载后需要解压码:edsryu4yu9hgfr34kj098@#^%(*@#FHk43ee6y9p8743

 

4,下载 redis-trib.rb ,放到c:\redis目录下备用

github下载链接:https://github.com/antirez/redis/tree/3.2/src

这个是redis集群工作要用到的小工具,ruby语言开发的小工具。

2.2安装环境

1. 安装RubyInstaller

安装2.1章中第2节下载的RubyInstaller,勾选

Install Td/Tk Support

Add Ruby executables to your PATH

Associate .rb and .rbw files with this Ruby installation

 

 

2.安装 GEM

@#!墙:运行第2.13节中下载的工具

 

显示已经连接成功了,这个时候,你可以直接安装redisruby之间通信的一个组件了,直接在命令行输入命令:

gem install redis

提示成功即可。

 

至此环境准备完闭

三、创建实例脚本

注意:由于中英文可能遇到兼容问题,所以运行脚本时,请把脚本文件放到英文目录下。

关于脚本,嫌麻烦的,通过本人csdn下载链接可直接下载,里面包含了所需的所有资料,下载链接为:http://download.csdn.net/download/mingojiang/10188229

创建一文本install.bat”,打开脚本编辑,以三台机器,每台机器三个节点为例,分别为每台机器创建一份脚本。前三个参数IP、端口前缀与安装路径需要自行配置,请参看脚本注释说明,如下

 

rem 本机IP,请自行配置

set localIp=192.168.1.159

 

rem 本机要开放的端口,一般以本机IP的尾号,固定三尾数,

rem 不够三位,后补0,如192.168.1.159,那设置成159,

rem 如果本机IP为192.168.1.31,那设置为310

set portPre=159

 

rem 你要安装的盘符,可自行配置

set InstallPath=D:\

 

set sourcePath=%~dp0

cd /d %InstallPath%

 

mkdir redis-cluster

cd redis-cluster

 

mkdir %portPre%01 %portPre%02 %portPre%03

 

copy %sourcePath%redis-server.exe %portPre%01

copy %sourcePath%redis-server.exe %portPre%02

copy %sourcePath%redis-server.exe %portPre%03

 

copy %sourcePath%EventLog.dll %portPre%01

copy %sourcePath%EventLog.dll %portPre%02

copy %sourcePath%EventLog.dll %portPre%03

 

copy %sourcePath%redis.windows-service.conf %portPre%01

copy %sourcePath%redis.windows-service.conf %portPre%02

copy %sourcePath%redis.windows-service.conf %portPre%03

 

copy %sourcePath%redis-trib.rb

copy %sourcePath%redis.windows-service.conf

copy %sourcePath%redis-cli.exe

copy %sourcePath%startLocalRedisService.bat

copy %sourcePath%stopLocalRedisService.bat

copy %sourcePath%uninstall.bat

copy %sourcePath%CreateCluster.bat

copy %sourcePath%add-auth.bat

 

rename %portPre%01\redis.windows-service.conf redis.conf

rename %portPre%02\redis.windows-service.conf redis.conf

rename %portPre%03\redis.windows-service.conf redis.conf

 

 

rem 关闭回显

@echo off

 

rem 定义变量延迟环境

setlocal enabledelayedexpansion

rem 读取所有内容

for /f "eol=* tokens=*" %%i in (%portPre%01\redis.conf) do (

rem 设置变量a为每行内容

set a=%%i

rem 如果该行有123,则将其改为456

set "a=!a:# cluster-enabled yes=cluster-enabled yes!"

rem 修改绑定的IP

set "a=!a:bind 127.0.0.1=bind %localIp%!"

rem 把修改后的全部行存入$

set "a=!a:port 6379=port %portPre%01!"

set "a=!a:dir ./=dir %InstallPath%redis-cluster\%portPre%01\!"

set "a=!a:# cluster-config-file nodes-6379.conf=cluster-config-file nodes.conf!"

echo !a!>>$)

rem 用$的内容替换原来a.txt内容

move $ %portPre%01\redis.conf

 

 

for /f "eol=* tokens=*" %%i in (%portPre%02\redis.conf) do (

set a=%%i

set "a=!a:# cluster-enabled yes=cluster-enabled yes!"

rem 修改绑定的IP

set "a=!a:bind 127.0.0.1=bind %localIp%!"

set "a=!a:port 6379=port %portPre%02!"

set "a=!a:dir ./=dir %InstallPath%redis-cluster\%portPre%02\!"

set "a=!a:# cluster-config-file nodes-6379.conf=cluster-config-file nodes.conf!"

echo !a!>>$)

move $ %portPre%02\redis.conf

 

for /f "eol=* tokens=*" %%i in (%portPre%03\redis.conf) do (

set a=%%i

set "a=!a:# cluster-enabled yes=cluster-enabled yes!"

rem 修改绑定的IP

set "a=!a:bind 127.0.0.1=bind %localIp%!"

set "a=!a:port 6379=port %portPre%03!"

set "a=!a:dir ./=dir %InstallPath%redis-cluster\%portPre%03\!"

set "a=!a:# cluster-config-file nodes-6379.conf=cluster-config-file nodes.conf!"

echo !a!>>$)

move $ %portPre%03\redis.conf

 

 

@echo on

 

echo modify redis.conf file finished....

echo begin install redis windows services.....

%InstallPath%redis-cluster\%portPre%01\redis-server.exe --service-install %InstallPath%redis-cluster\%portPre%01\redis.conf --service-name %portPre%01redisM

%InstallPath%redis-cluster\%portPre%02\redis-server.exe --service-install %InstallPath%redis-cluster\%portPre%02\redis.conf --service-name %portPre%02redisM

%InstallPath%redis-cluster\%portPre%03\redis-server.exe --service-install %InstallPath%redis-cluster\%portPre%03\redis.conf --service-name %portPre%03redisM

 

echo install redis windows services finished.....

 

echo begin start all the redis as windows service......

%InstallPath%redis-cluster\%portPre%01\redis-server.exe --service-start --service-name %portPre%01redisM

%InstallPath%redis-cluster\%portPre%02\redis-server.exe --service-start --service-name %portPre%02redisM

%InstallPath%redis-cluster\%portPre%03\redis-server.exe --service-start --service-name %portPre%03redisM

echo start all the redis as windows service finished....

 

rem 延时20秒,自动关闭窗口

ping -n 20 127.0>nul

四、创建集群脚本

通过以上第三节中的说明,分别在每个机器上创建一个脚本,并执行成功,然后在部署了环境的服务器上执行集群搭建工作。也是通过脚本完成,创建文本,命名CreateCluster.bat”, 脚本需要配置每个机器的IP与端口号前缀,配置在脚本的前几行,配置好后,执行脚本按提醒操作,成功后即可,脚本如下:

rem 必须自己指定各个结点的IP与对应的端口前缀,格式为IP:portPre

rem 必须详细配置,此为三个服务器的IP,与对应redis结点的端口号前缀(端口号是连接的)

set localIp1=192.168.1.159:159

set localIp2=192.168.1.159:160

set localIp3=192.168.1.159:161

 

cd /d %~dp0

echo begin create redis cluster......

redis-trib.rb create --replicas 2 %localIp1%01 %localIp2%01 %localIp3%01 %localIp2%02 %localIp3%02 %localIp1%02 %localIp3%03 %localIp1%03 %localIp2%03

echo  create redis cluster finished....

 

rem 延时20秒,自动关闭窗口

ping -n 20 127.0>nul

 

五、集群加密脚本

如果你无要为你的集群加密,请路过此节。为每台机器创建文本,命名add-auth.bat”,脚本需要配置端口前缀与密码,密码需要全部配置成一样,配置好后,执行脚本按提醒操作,成功后即可,脚本如下:

rem 本机要开放的端口,一般以本机IP的尾号,固定三尾数,

rem 不够三位,后补0,如192.168.1.159,那设置成159,

rem 如果本机IP为192.168.1.31,那设置为%portPre%

set portPre=159

 

rem 给你的集群加上密码,可自行配置

set auth_password=#disiswnin((ndw0rksinm0stP0SIXsyst#mslik#Linux@*BSD@0ux(nd0SX(r#th#tw00p#r(tingsyst#

 

cd /d %~dp0

echo begin stop all the redis as windows service......

%portPre%01\redis-server.exe --service-stop --service-name %portPre%01redisM

%portPre%02\redis-server.exe --service-stop --service-name %portPre%02redisM

%portPre%03\redis-server.exe --service-stop --service-name %portPre%03redisM

echo stop all the redis as windows service finished....

 

echo begin add password to the windows service redis......

 

@echo off

 

rem 定义变量延迟环境

setlocal enabledelayedexpansion

rem 读取所有内容

for /f "eol=* tokens=*" %%i in (%portPre%01\redis.conf) do (

rem 设置变量a为每行内容

set a=%%i

rem 如果该行有123,则将其改为456

set "a=!a:# requirepass foobared=requirepass %auth_password%!"

set "a=!a:# masterauth <master-password>=masterauth %auth_password%!"

echo !a!>>$)

rem 用$的内容替换原来a.txt内容

move $ %portPre%01\redis.conf

 

for /f "eol=* tokens=*" %%i in (%portPre%02\redis.conf) do (

set a=%%i

set "a=!a:# cluster-config-file nodes-6379.conf=cluster-config-file nodes.conf!"

set "a=!a:# requirepass foobared=requirepass %auth_password%!"

set "a=!a:# masterauth <master-password>=masterauth %auth_password%!"

echo !a!>>$)

move $ %portPre%02\redis.conf

 

for /f "eol=* tokens=*" %%i in (%portPre%03\redis.conf) do (

set a=%%i

set "a=!a:# requirepass foobared=requirepass %auth_password%!"

set "a=!a:# masterauth <master-password>=masterauth %auth_password%!"

echo !a!>>$)

move $ %portPre%03\redis.conf

@echo on

 

echo end add password to the windows service redis......

 

echo begin start all the redis as windows service......

 

%portPre%01\redis-server.exe --service-start --service-name %portPre%01redisM

%portPre%02\redis-server.exe --service-start --service-name %portPre%02redisM

%portPre%03\redis-server.exe --service-start --service-name %portPre%03redisM

 

echo start all the redis as windows service finished....

 

echo off

 

rem 延时30秒,自动关闭窗口

ping -n 10 127.0>nul

 

 

 

六、卸载集群脚本

对安装后的集群服务,如果想要卸载,流程是,先停止所有节点服务,然后再反注册即可。为每台机器创建一个文本,每个机器脚本第一个参数需要配置端口前缀,脚本命名uninstall.bat”,然后编辑脚本:

 

rem 本机要开放的端口,一般以本机IP的尾号,固定三尾数,

rem 不够三位,后补0,如192.168.1.159,那设置成159,

rem 如果本机IP为192.168.1.31,那设置为310

set portPre=159

 

 

cd /d %~dp0

echo begin stop all the redis as windows service......

 

%portPre%01\redis-server.exe --service-stop --service-name %portPre%01redisM

%portPre%02\redis-server.exe --service-stop --service-name %portPre%02redisM

%portPre%03\redis-server.exe --service-stop --service-name %portPre%03redisM

 

echo stop all the redis as windows service finished....

 

echo "unistall redis service....."

%portPre%01\redis-server.exe --service-uninstall --service-name %portPre%01redisM

%portPre%02\redis-server.exe --service-uninstall --service-name %portPre%02redisM

%portPre%03\redis-server.exe --service-uninstall --service-name %portPre%03redisM

 

echo "uninstall redis service finished"

 

 

 

rem 延时10秒,自动关闭窗口

ping -n 10 127.0>nul

 

七、停止集群节点脚本

有时想要停止所有节点服务,在服务管理器中,一个一个手动停止也是一种办法,但是麻烦,一个一个操作,费事,可通过脚本一键停止,为每台机器创建一个文本,配置第一个参数,脚本命名stopLocalRedisService.bat”,编辑脚本:

rem 本机要开放的端口,一般以本机IP的尾号,固定三尾数,

rem 不够三位,后补0,如192.168.1.159,那设置成159,

rem 如果本机IP为192.168.1.31,那设置为310

set portPre=159

 

cd /d %~dp0

echo begin stop all the redis as windows service......

 

%portPre%01\redis-server.exe --service-stop --service-name %portPre%01redisM

%portPre%02\redis-server.exe --service-stop --service-name %portPre%02redisM

%portPre%03\redis-server.exe --service-stop --service-name %portPre%03redisM

 

echo stop all the redis as windows service finished....

 

rem 延时5秒,自动关闭窗口

ping -n 5 127.0>nul

八、启动集群脚本脚本

有时想要启动所有节点服务,在服务管理器中,一个一个手动启动也是一种办法,但是麻烦,一个一个操作,费事,可通过脚本一键启动,每台机器创建一个文本,配置第一个参数,脚本命名startLocalRedisService.bat”,编辑脚本:

rem 本机要开放的端口,一般以本机IP的尾号,固定三尾数,

rem 不够三位,后补0,如192.168.1.159,那设置成159,

rem 如果本机IP为192.168.1.31,那设置为310

set portPre=159

 

cd /d %~dp0

echo begin start all the redis as windows service......

 

%portPre%01\redis-server.exe --service-start --service-name %portPre%01redisM

%portPre%02\redis-server.exe --service-start --service-name %portPre%02redisM

%portPre%03\redis-server.exe --service-start --service-name %portPre%03redisM

 

echo start all the redis as windows service finished....

 

 

rem 延时5秒,自动关闭窗口

ping -n 5 127.0>nul

九、集群的测试、运维

集群搭建后,需要测试,调试,运维等,涉及到很多的命令与方法,请参加另一博文:http://blog.csdn.net/mingojiang/article/details/78902370

 

 

 

转载于:https://www.cnblogs.com/MingoJiang/p/8682006.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
windows环境下redis集群搭建搭建频繁如下: redis集群测试 01、安装Redis 02、创建6个目录Redis7001、Redis7002、Redis7003、Redis7004、Redis7005、Redis7006 03、把Redis目录下的redis.windows.conf文件分别复制到上创建创建的6个文件夹中 04、修改6个文件夹中的redis.windows.conf文件 a、修改端口,分别对应 700* b、绑定IP,这里使用的是一电脑,都设置为127.0.0.1 c、指定数据文件(appendonly.aof)的存放位置,dir C:/MySoftPath/Java/Redis/Redis700*/ d、开启集群模式,cluster-enabled yes e、集群文件配制信息(不用设置路径,自动在对应的700*下面),cluster-config-file nodes-700*.conf f、超时时间,cluster-node-timeout 5000 g、开启aof模式,appendonly yes h、数据文件名称,appendfilename "appendonly.aof" 05、启动这6个redis 06、安装ruby环境(rubyinstaller-2.2.4-x64.exe),注意(安装所有模块),后台需要使用此环境。 07、下载ruby环境下Redis的驱动“redis-3.2.2.gem”。 08、把“redis-3.2.2.gem”放到ruby环境下进行驱动,在所在的目录运行【gem install --local redis-3.2.2.gem】 09、把redis-trib.rb集群工具放在redis目录下,使用此工具创建集群 10、创建Redis集群redis-trib.rb create --replicas 0 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006】 11、注意,如果第10步没有反应也不报错,在redis-trib.rb命令前面使用ruby 【ruby redis-trib.rb create --replicas.........】 12、最后配上别人的博客【http://www.cnblogs.com/tommy-huang/p/6240083.html】 。。。。。。。。。。。。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值