1,下载Redis for windows 的最新版本,解压到 c:\Redis 目录下备用
https://github.com/MSOpenTech/redis/releases
当前我使用的是 3.0.501

2,下载 RubyInstaller
http://rubyinstaller.org/downloads/

安装时,勾选 
Install Td/Tk Support 
Add Ruby executables to your PATH
Associate .rb and .rbw files with this Ruby installation

3,下载 redis-trib.rb , 放到 c:\redis 目录下备用
https://raw.githubusercontent.com/antirez/redis/unstable/src/redis-trib.rb

4,新建6个子文件夹
cmd
cd c:\redis
mkdir 7000 7001 7002 7003 7004 7005

5,将如下配置修改,分别放入上一步新建的6个子文件夹中, 保存为 redis.conf:

port 7000
cluster-enabled yes
cluster-config-file nodes-7000.conf
cluster-node-timeout 5000
appendonly yes

注意,将 port 和 cluster-config-file 改掉(每个文件都不一样)

6, 为方便启动这些 Redis 实例,新建如下 bat 文件:

@echo off
cd c:\Redis
start Redis-Server ./7000/redis.conf
start Redis-Server ./7001/redis.conf
start Redis-Server ./7002/redis.conf
start Redis-Server ./7003/redis.conf
start Redis-Server ./7004/redis.conf
start Redis-Server ./7005/redis.conf

7, 运行上步新建的 bat 文件,会打开6个窗口,每个窗口承载一个 Redis 实例,端口从 7000 至 7005
在 c:\Redis 文件夹下会出现 nodes-7000.conf 至 nodes-7005.conf 这几个文件

8,安装 GEM,Redis 的 ruby 支持环境

 
由于 GFW的问题, GEM 的源在国内不可用,所以使用淘宝的映像:
 
添加:
gem sources -a https://ruby.taobao.org
 
查看已存在的源:
gem sources -l
 
删除被墙的源:
gem sources -r https://rubygems.org/
 
安装 Redis 支持环境:
gem install redis

9,创建群集

打开 cmd , 执行以下命令:
cd c:\redis
redis-trib.rb create --replicas 1 127.0.0.1:7000 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

--replicas 1 即自动分配 Slave , 如果想手动指定 Slave  , 将该值变为 0 即可, 地址列表中,只需要 3个实例即可。

由于使用的是 6个实例,自动分配 Slave ,所以前3个为 master , 后3 个为 slave, 并确定3个主节点的 slots 范围。

如果确认没有问题, 输入 yes
如果群集创建成功, 会输出 OK XXXXX
如果出现:
err slot xxx is already busy, 请删除 appendonly.aof 及 nodes-xxx.conf (cluster-config-file 所指的文件) 文件

10, 测试一下:
redis-cli.exe -c -p 7000

--------------------------------------

以上是同一台机器上的群集部署方案,同一台虚拟机,使用不同的实例, 创建群集时,一路顺利。

但是将实例部署到不同的机器上,我分别在6台虚拟机上安装了 Redis, 但一开始创建群集的时候,就卡在这里:

>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join....................

一直在这个 Waiting for the cluster to join 这里。。。

用 redis-trib.rb check 192.168.18.111:6379 检查,提示

[ERR] Not all 16384 slots are covered by nodes

具体的就是某台 master 上的 sloats 是 0

用客户端连接到那个没有分配 sloat 的 redis 实例,发送以下命令:

cluster meet 192.168.18.111 6379

回头在用 Redis-trib.rb check 检查, 发现

[OK] All 16384 slots covered.

但是群集的创建还是卡在那个 waiting 上 ,

继续在其它节点上发送 cluster meet 命令,回头在用 redis-trib.rb check , 神奇的 Not all 16384 slots are covered by nodes 居然又来了。

将那个slots 为 0的实例做为 slave (放到参数列表的最后),在创建,顺利通过!这个问题真是神奇啊!

出处:http://www.cnblogs.com/xling/p/5253063.html

Windows 部署 Redis 群集(转)的更多相关文章

  1. Windows 部署 Redis 群集

    1,下载Redis for windows 的最新版本,解压到 c:\Redis 目录下备用https://github.com/MSOpenTech/redis/releases当前我使用的是 3. ...

  2. 部署 Redis 群集

    Windows 部署 Redis 群集   1,下载Redis for windows 的最新版本,解压到 c:\Redis 目录下备用https://github.com/MSOpenTech/re ...

  3. windows环境redis主从安装部署

    准备工作 下载windows环境redis,我下载的是2.4.5,解压,拷贝一主(master)两从(slaveof).主机端口使用6379,两从的端口分别为6380和6381, 我本地索性用6379 ...

  4. 在windows下部署Redis 当作系统服务器自动启动

    部署Redis 其实Redis是可以安装成windows服务的,开机自启动,命令如下: redis-server --service-install redis.windows.conf 安装完之后, ...

  5. windows下Redis 主从读写分离部署

    原文:windows下Redis 主从读写分离部署 1.可直接下载window下的运行文件(下面这个链接) 也可以浏览github 查看相应的版本说明文档 https://github.com/Ser ...

  6. Windows下Redis集群安装与部署

    1.下载 Redis-x64-3.2.100.zip 安装程序 官网下载地址:http://redis.io/download GitHub下载地址:https://github.com/micros ...

  7. 如何在Windows上部署Redis集群和SpringBoot进行整合

    一.安装Redis的Windows版本并进行配置 (1)下载链接 https://github.com/microsoftarchive/redis/releases (2)将下载后的Redis复制成 ...

  8. window下使用Redis Cluster部署Redis集群

    日常的项目很多时候都需要用到缓存.redis算是一个比较好的选择.一般情况下做一个主从就可以满足一些比较小的项目需要.在一些并发量比较大的项目可能就需要用到集群了,redis在Windows下做集群可 ...

  9. Windows下Redis中RedisQFork位置调整

    redis-server.exe redis.windows.conf 使用上面命令启动redis服务的时候报了以下错误信息: The Windows version of Redis allocat ...

随机推荐

  1. CubeSuit+ ( CS+ for ca )

    作为瑞萨单片机的初学者,最先接触的当属它的IDE了,接下来我将分享一些我使用这款单片机的心得,以供大家参考. 我使用的是RL78F13系列R5F10BGE,那如何建立一个能使用的工程呢?相信大家在网络 ...

  2. ArcGIS API for JavaScript 4.2学习笔记[28] 可视域分析【使用Geoprocessor类】

    想知道可视域分析是什么,就得知道可视域是什么 我们站在某个地方,原地不动转一圈能看到的所有事物就叫可视域.当然平地就没什么所谓的可视域. 如果在山区呢?可视范围就会被山体挡住了.这个分析对军事上有十分 ...

  3. [Upper case conversion ] 每个单词的首小写字母转换为对应的大写字母

    Given a string , write a program to title case every first letter of words in string. Input:The firs ...

  4. IT服务(运维)管理实施的几个要点--第一章 IT服务质量的标准

    子曰"干的最好就是个60分,稍有纰漏就是不及格" 谈一个事情,最先要谈的就是统一标准,又或者这个标准已经约定俗成,广泛认可,所以就可以略过.对于IT服务质量来说,确实有一个统一的标 ...

  5. python爬虫——建立IP池,将可用IP存放到redis

    直接上代码,每行代码后面都有注释 import urllib.request import urllib import re import time import random import sock ...

  6. 基于Docker的ELK日志平台搭建

    1.安装Docker Docker可简单理解为一个轻量级的虚拟机.Docker对进程进行封装隔离,隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器.Docker和传统虚拟化方式的不同.传统虚拟 ...

  7. ES6(三)数组的扩展

    1.Array.form ES6中,Array.from = function(items,mapfn,thisArg) {  }   Array.from 用于将 类数组 和 可遍历对象(实现了It ...

  8. ZJOI 2015 诸神眷顾的幻想乡

    题目描述 幽香是全幻想乡里最受人欢迎的萌妹子,这天,是幽香的2600岁生日,无数幽香的粉丝到了幽香家门前的太阳花田上来为幽香庆祝生日. 粉丝们非常热情,自发组织表演了一系列节目给幽香看.幽香当然也非常 ...

  9. Javascript流程控制

    Javascript流程控制 1.条件语句 (1)if(exp)执行一句代码 (2)if(exp){执行代码段;} (3)if(exp){exp为true执行代码段}else{exp为false执行的 ...

  10. 阿里maven仓库地址 和 oschina maven仓库地址

    <mirror>     <id>nexus-aliyun</id>     <mirrorOf>*</mirrorOf>     < ...