Redis集群部署-windows

Redis集群部署-windows

前言

为了能体验一下部署Redis集群是一种怎么样的体验,所一边做一边写了这篇记录。

1.准备

从这里下载windows服务端
https://github.com/MicrosoftArchive/redis/releases

写这个文章的时候最新版为 v3.2.100.

如果你不需要部署集群,请下载msi格式的安装包,安装之后就可以本机体验了。

如果要体验部署集群,请下载zip包。

PS:系统必须是x64的 😃

2.配置

下载下来后,把 Redis-x64-3.2.100.zip 解压到

D:\Program\Redis\Redis\

下面,当然你可以自行选择目录,这个不影响。

D:\Program\Redis\ 这级目录建立一堆文件夹,
11001,11002~11006,共6个文件夹。
或者用命令建立目录:

>for /L %i in (1 1 6) do md 1100%i

复制Redis\redis.windows.conf 文件到 11001\ 并改名字为 redis.conf

官方创建集群的方式
http://doc.redisfans.com/topic/cluster-tutorial.html#id7

不安装Ruby创建集群的方式
https://blog.csdn.net/gangchengzhong/article/details/53260241

设置主从
在对应的配置文件修改一行:

slaveof 127.0.0.1 11001

我把11004设置为11001的副本,11005->11002,11006->11003,这些都需要在对应的文件 11004\redis.conf 里面设置好的。

3.一些脚本

1Start.bat 用于创建6个目录,并复制配置文件,最后创建启动脚本

for /L %%i in (11001 1 11006) do md %%i & copy /y .\Redis\redis.windows.conf .\%%i\redis.conf
for /L %%i in (11001 1 11006) do echo start ..\Redis\redis-server.exe redis.conf --port %%i --dir ..\%%i\ --cluster-enabled yes --cluster-node-timeout 5000 --cluster-config-file ..\%%i\nodes-%%i.conf>%%i\1Start.bat

2Start.bat 启动所有实例

for /L %%i in (11001 1 11006) do cd %%i & 1Start.bat & cd ..

3Stop.bat 正常模式停止所有实例

for /L %%i in (11001 1 11006) do .\Redis\redis-cli -p %%i shutdown

3Kill.bat 直接杀死所有Redis进程,和上面的二选一,不会持久化内容到磁盘

taskkill /im redis-server.exe

4CreateCluster.bat 创建集群,请先修改从服务器的配置(11004~11006),先启动所有实例之后再执行。

cd Redis
rem 分别在各个Redis instance添加hash slots(这里是平均分配)
redis-cli -p 11001 CLUSTER ADDSLOTS {0..5460}
redis-cli -p 11002 CLUSTER ADDSLOTS {5461..10922}
redis-cli -p 11003 CLUSTER ADDSLOTS {10923..16383}

rem 分别在各个Redis instance执行SET-CONFIG-EPOCH
redis-cli -p 11001 CLUSTER SET-CONFIG-EPOCH 1
redis-cli -p 11002 CLUSTER SET-CONFIG-EPOCH 2
redis-cli -p 11003 CLUSTER SET-CONFIG-EPOCH 3

rem 连接集群,在一个Redis instance执行就OK了
redis-cli -p 11001 CLUSTER MEET 127.0.0.1 11002
redis-cli -p 11001 CLUSTER MEET 127.0.0.1 11003

4.跑起来

可以使用上面的 2Start.bat 来启动所有实例,然后用cli连接:
redis-cli -p 11001

PS:你可以在Redis的目录按 shift+右键->在此处打开命令窗口,然后你就可以输入命令了。

不过。。。实事没那么简单。。。
你会收到一堆错误:

(error) CLUSTERDOWN Hash slot not served

5.坑

在windows版的Redis功能不完整,不能设置副本。。。。
另外CLUSTER ADDSLOTS {0..5460} 这句执行不了。。。
所以集群是启动不了了(→_→)
是不是很"惊喜" (:зゝ∠)
我当时就有种吐血的感觉了。。。

所以绝对不要使用结群部署模式哦!!!!

PS: 博客园的markdown编辑器折腾了我好久。。。

附件

我将我用来研究的自动化脚本和Redis的包打包一起了。
Redis-windows-x64-3.2.100.7z

参考

https://blog.csdn.net/github_26672553/article/details/69568259

posted @ 2018-04-17 10:23  流星夜  阅读(315)  评论(0编辑  收藏  举报