Windows 部署 Redis 群集(转)
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 支持环境
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 群集(转)的更多相关文章
- Windows 部署 Redis 群集
1,下载Redis for windows 的最新版本,解压到 c:\Redis 目录下备用https://github.com/MSOpenTech/redis/releases当前我使用的是 3. ...
- 部署 Redis 群集
Windows 部署 Redis 群集 1,下载Redis for windows 的最新版本,解压到 c:\Redis 目录下备用https://github.com/MSOpenTech/re ...
- windows环境redis主从安装部署
准备工作 下载windows环境redis,我下载的是2.4.5,解压,拷贝一主(master)两从(slaveof).主机端口使用6379,两从的端口分别为6380和6381, 我本地索性用6379 ...
- 在windows下部署Redis 当作系统服务器自动启动
部署Redis 其实Redis是可以安装成windows服务的,开机自启动,命令如下: redis-server --service-install redis.windows.conf 安装完之后, ...
- windows下Redis 主从读写分离部署
原文:windows下Redis 主从读写分离部署 1.可直接下载window下的运行文件(下面这个链接) 也可以浏览github 查看相应的版本说明文档 https://github.com/Ser ...
- Windows下Redis集群安装与部署
1.下载 Redis-x64-3.2.100.zip 安装程序 官网下载地址:http://redis.io/download GitHub下载地址:https://github.com/micros ...
- 如何在Windows上部署Redis集群和SpringBoot进行整合
一.安装Redis的Windows版本并进行配置 (1)下载链接 https://github.com/microsoftarchive/redis/releases (2)将下载后的Redis复制成 ...
- window下使用Redis Cluster部署Redis集群
日常的项目很多时候都需要用到缓存.redis算是一个比较好的选择.一般情况下做一个主从就可以满足一些比较小的项目需要.在一些并发量比较大的项目可能就需要用到集群了,redis在Windows下做集群可 ...
- Windows下Redis中RedisQFork位置调整
redis-server.exe redis.windows.conf 使用上面命令启动redis服务的时候报了以下错误信息: The Windows version of Redis allocat ...
随机推荐
- HashMap 之弱引用 - WeakHashMap
■ Java 引用的相关知识 1. 强引用 Object o = new Object(); 强引用是Java 默认实现 的引用,JVM会尽可能长时间的保留强引用的存在(直到内存溢出) 当内存空间不足 ...
- C#生成缩略图 (通用模式)
用数据库保存图片的路径和文件名称,把文件保存在文件夹中.//保存在数据库中的文件路径ArrayList arrFilePath=new ArrayList();arrFilePath=myCommon ...
- (一)DOM 常用操作 —— “查找”节点
在 DOM 树中,如果想要操作一个节点,那么首先要"查找"到这个节点.查找节点的方法由 Document 接口定义,而该接口由 JavaScript 中的 document 对象实 ...
- jq 中each的用法 (share)
each的使用方法 在jQuery里有一个each方法,用起来非常的爽,不用再像原来那样写for循环,jQuery源码里自己也有很多用到each方法.其实jQuery里的each方法是通过js里的ca ...
- ADO.NET访问数据库
1:ADO.NET数据库的方法和技术 2:ADO.NET的主要组成: 1>DataSet(数据集)-----独立于数据间的数据访问 2>.NETFramework(数据提供程序)----- ...
- 一个IC软件工程师的2017年终工作总结
相比2016年的波澜起伏,2017多了一份平静和清淡.不过,平静的生活下,总有一颗飞向远方的心. 在这一年将近结束的时候,总结一下自己的工作,生活和学习.也顺便展望一下未来的2018,看看有哪些 美好 ...
- 用 CSS3 做一个流星雨动画
昨天 UI 提交过来一个登录页的设计稿,要求背景有一个流星雨动画,做完之后觉得挺有趣,分享一下~ 一.流星动画 首先创建一个 div 作为画布 <div id="stars" ...
- Java Proxy和CGLIB动态代理原理
动态代理在Java中有着广泛的应用,比如Spring AOP,Hibernate数据查询.测试框架的后端mock.RPC,Java注解对象获取等.静态代理的代理关系在编译时就确定了,而动态代理的代理关 ...
- python 多进程开发与多线程开发
转自: http://tchuairen.blog.51cto.com/3848118/1720965 博文作者参考的博文: 博文1 博文2 我们先来了解什么是进程? 程序并不能单独运行,只有将程 ...
- MicroPython最全资料集锦丨TPYBoard全系列教程之文档+例程源码
MicroPython成功将Python引入到嵌入式领域,近几年MicroPython的发展和普及也证明,Python无疑将在未来几年内快速抢占和蚕食C/C++的份额.包括现在比较火爆的机器人.无人机 ...