操作系统:win10 64位

redis版本:3.2.1-x64

ruby版本:2.5.1-1-x64

rubygems版本:2.7.6

今天突然想简单的搭建一个redis的集群,因为系统是Windows上的,所以就网上查找了一番搭建集群的相关博客和攻略,经过各种问题后,成功运行了。现在记下来,省的忘记了。。。

其中相关程序的版本经过搭建后,就暂时确立为以上版本,放在百度云盘上,地址:https://pan.baidu.com/s/1D5Xyl-3fonr8mKUlNQA2Ug,密码:00x5。搭建过程中出现过一些问题,有些是因为ruby版本太低,有些是安装不正确等各种因素,具体的一些原因可以查看博客https://blog.csdn.net/asas1314/article/details/50203923,上面总结的挺好的,就不详细讲了。

一、 下载redis

下载上述百度云盘中的redis,解压到任意文件夹中,我直接下载到桌面上了,就干脆解压到桌面上去了,里面文件如下所示(其中的redis-trib.rb是没有的,需要另外下载的):

 
 
 

二、 配置三主三从集群

解压后,将redis复制五份,配置三主三从集群,由于redis默认端口为6379,所以另外五份分别为6380,6381,6382,6383,6384。我建立的如下所示:

其中每一个文件夹都是一个redis

三、 修改每一份redis的配置

以6379为例,打开文件夹中的redis.windows.conf文件,分别修改里面的如下数据:

port 6379                 //修改默认端口,与文件夹相同即可

cluster-enabled yes        //开启实例的集群模式

cluster-config-file nodes-6379.conf        //设定保存节点配置文件的路径,节点文件自动生成,无需修改

cluster-node-timeout 15000      //调整为  15000,那么在创建集群的时候,不会超时。

appendonly yes            //开启appendonly模式后,redis将每一次写操作请求都追加到appendonly.aof文件中

 注意:修改配置文件的时候去掉注释的部分,前面不能有空格

同时还有一个文件 redis.windows-service.conf也需要修改相同之处,保存即可

另外,在每个文件夹中写一个bat用来启动redis,内容如下:

title redis-6379

redis-server.exe redis.windows.conf

建立完成之后,可以分别点击每个文件夹中的bat,启动每个redis。

四、 安装ruby

redis建立的的集群需要ruby环境,所以下载云盘中的rebyinstaller,全部下一步,该勾选的全部勾选上,

路径选择其他或者默认即可。之前因为下载安装的2.4.4-1的版本,安装之后出现了点问题,所以升级了ruby为2.5.1-1的版本。

五、 安装rubygems

下载云盘的版本后解压缩,启动cmd进入到解压后的文件夹中,直接运行ruby setup.rb执行安装即可

上面的命令执行安装完后,接着执行命令 gem install redis,安装redis的相关依赖。

六、下载集群脚本redis-trib.rb

可以用云盘上传的那个。或者在百度下载其他脚本,我是将文件放到了D:/Redis目录下

七、 执行集群构建脚本

进入到redis-trib.rb所在的文件夹中,执行命令redis-trib.rb create --replicas 1 127.0.0.1:6379 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,即可构建集群。

其中会出现Can I set the above configuration? (type 'yes' to accept),输入yes,

最后出现两个OK的时候差不多就是构建成功了。其中上面也可以看到主从节点的对应关系,如图:

八、 测试集群

例如进入6379的文件夹,输入命令redis-cli.exe -h 127.0.0.1 -p 6379 -c(h自然是主机号,p是端口号,c连接集群结点时使用,此选项可防止moved和ask异常。)后,

开启redis,然后,例如输入一个set name hello,然后集群会自动将这个保存到6380的redis中,集群之间也会自动的跳转过去,然后在6380中去get name,自然可以获取的到。

 

九、 关闭和重新启动集群

网上查看了很久,似乎关闭和重新启动集群主要是关闭redis服务和重新启动redis服务,其中靠谱的解答如下:

(1)通过redis-cli连接服务器后执行shutdown命令,则执行停止redis服务操作。

(2)可以使用shutdown命令关闭redis服务器外,还可以使用kill+进程号的方式关闭redis服务。

(3)不要使用Kill 9方式关闭redis进程,这样redis不会进行持久化操作,除此之外,还会造成缓冲区等资源不能优雅关闭,极端情况下会造成AOF和复制丢失数据的情况

(4)shutdown还有一个参数,代表关闭redis服务前是否生产持久化文件

shutdown save|nosave

最新文章

  1. 搭建LNAMP环境(二)- 源码安装Nginx1.10
  2. UVa 103 - Stacking Boxes(dp求解)
  3. C# 字符串的截取和替换
  4. WP8 学习 在APP.XAML中加入Resources
  5. linux Shell的使用
  6. ldconfig及 LD_LIBRARY_PATH
  7. spring mvc 笔记
  8. Qt 学习之路:QML 和 QtQuick 2
  9. BZOJ3412: [Usaco2009 Dec]Music Notes乐谱
  10. u Calculate e
  11. zookeeper(2)-curator
  12. GO语言.树莓派.环境安装和测试
  13. 486A
  14. Tomcat的四种web应用部署方式详解
  15. 题解-hdu2866 Special Prime
  16. Java进程与线程的区别
  17. Linux实现VLAN
  18. [CB]IPv6 在中国 - 大规模部署进行中 进展明显
  19. Scala对class/object反射
  20. CF 666E Forensic Examination——广义后缀自动机+线段树合并

热门文章

  1. 九度OJ 1134:密码翻译 (翻译)
  2. Django学习之站点缓存详解
  3. 解决shell脚本“syntax error near unexpected token `fi'”的问题。
  4. mysql给一张表新增字段,并设置该字段为外键
  5. SQL 系统表应用
  6. vue指令与$nextTick 操作DOM的不同之处
  7. Codeforces Beta Round #56 A. Where Are My Flakes? —— 贪心
  8. 人生苦短之Python函数的健壮性
  9. Linux各类压宿包的解压方法
  10. DDD领域驱动之干货(二)