windows-redis 集群搭建
Windows 配置Reids集群 Redis Cluster
1. 下载安装Redis
Redis官方不支持Windows,但是Microsoft Open Tech group在 GitHub上开发了一个Win64的版本,下载地址为:
https://github.com/MSOpenTech/redis/releases
解压之后,拷贝到自定义的Redis目录下,例如D:\dev\Redis
打开cmd,切换到Redis目录下,执行
redis-server redis.windows.conf
- 1
- 2

窗口不要关闭,再重新打开一个cmd窗口,连接Redis执行
redis-cli.exe -h 127.0.0.1 -p 6379
- 1
- 2

2. 安装Ruby并配置环境
安装Ruby,Windows可以安装RubyInstaller,下载地址:
http://railsinstaller.org/en
一直下一步安装完成会自动弹出一个cmd的黑色窗口,需要对Ruby进行配置

执行 gem install redis 出现 SSL Connect error时,是因为ruby 没有包含 SSL 证书,所以 https 的链接被服务器拒绝。
解决方法很简单,首先在这里下载证书 http://curl.haxx.se/ca/cacert.pem, 然后再环境变量里设置 SSL_CERT_FILE 这个环境变量,并指向 cacert.pem 文件。

3. 搭建Redis集群
要让集群正常运作至少需要三个主节点,不过在刚开始试用集群功能时, 强烈建议使用六个节点: 其中三个为主节点, 而其余三个则是各个主节点的从节点。
主节点崩溃,从节点的Redis就会提升为主节点,代替原来的主节点工作,崩溃的主Redis回复工作后,会成为从节点
1). 创建Redis集群目录
在redis安装的根目录下创建6个以端口命名的文件夹
mkdir 7000 7001 7002 7003 7004 7005
- 1
- 2

将安装的redis文件夹中的redis.windows.conf以及redis-server,分别拷贝到新建的六个文件夹中
2). 更改配置
将六个文件夹下的redis.windows.conf文件中以下属性进行修改:
port 7001(对应文件夹的端口号)
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
- 1
- 2
- 3
- 4
- 5
- 6
3). 启动6个redis服务
进入每个端口命名的文件夹下启动服务
cd 7001
redis-server.exe redis.conf
- 1
- 2
- 3
其他几个目录同上
4). 创建启动集群
由于创建启动集群需要redis-trib.rb文件,它是一个 Ruby 程序, 这个程序通过向实例发送特殊命令来完成创建新集群,检查集群或者对集群进行重新分片(reshared)等工作。
Windows的redis安装文件中是没有这个文件的,我们需要去官网下载Redis,官网的Redis是Linux版本,在其源码src文件夹下,将redis-trib.rb拷贝到本机中Redis的安装目录中
最后进入redis-trib.rb文件所在目录执行:
ruby 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
- 1
- 2
这个命令在这里用于创建一个新的集群, 选项–replicas 1 表示我们希望为集群中的每个主节点创建一个从节点。之后跟着的其他参数则是这个集群实例的地址列表,3个master3个slave
redis-trib 会打印出一份预想中的配置给你看, 如果你觉得没问题的话, 就可以输入 yes ,redis-trib 就会将这份配置应用到集群当中,让各个节点开始互相通讯。

5). 连接集群进行测试
连接集群的指令:
redis-cli.exe -c -p 7000
- 1
- 2

Redis集群数据分配策略:
采用一种叫做哈希槽 (hash slot)的方式来分配数据,redis cluster 默认分配了 16384 个slot,当我们set一个key 时,会用CRC16算法来取模得到所属的slot,然后将这个key分到哈希槽区间的节点上,具体算法就是:CRC16(key) % 16384
注意的是:必须要3个以后的主节点,否则在创建集群时会失败,三个节点分别承担的slot 区间是:
节点A覆盖0-5460;
节点B覆盖5461-10922;
节点C覆盖10923-16383.
- 1
- 2
- 3
- 4
所以上图中按照redis cluster的哈希槽算法:CRC16(‘name’)%16384
被分配到了7001端口的redis服务上。
至此,Redis Cluster在Windows上的配置就完成了!
文章来源:http://blog.csdn.net/mrxiagc/article/details/52799081#t2
源代码:https://pan.baidu.com/s/1bqUpDk7, 密码:p0mo
windows-redis 集群搭建的更多相关文章
- Windows redis集群搭建
一.Windows下Redis安装 下载地址https://github.com/dmajkic/redis/downloads,下载到的Redis支持32bit和64bit.根据自己实际情况选择,本 ...
- Linux Redis集群搭建与集群客户端实现(Python)
硬件环境 本文适用的硬件环境如下 Linux版本:CentOS release 6.7 (Final) Redis版本: Redis已经成功安装,安装路径为/home/idata/yangfan/lo ...
- Linux Redis集群搭建与集群客户端实现
硬件环境 本文适用的硬件环境如下 Linux版本:CentOS release 6.7 (Final) Redis版本: Redis已经成功安装,安装路径为/home/idata/yangfan/lo ...
- 25.redis集群搭建笔记
###Redis集群### 0.准备 软件: redis-3.0.0.gem redis-3.0.0.tar.gz#源码 1.安装ruby环境 redis基于ruby槽位计算,hash算法技术,k ...
- Redis 集群搭建详细指南
先有鸡还是先有蛋? 最近有朋友问了一个问题,说毕业后去大城市还是小城市?去大公司还是小公司?我的回答都是大城市!大公司! 为什么这么说呢,你想一下,无论女孩男孩找朋友都喜欢找个子高胸大的.同样的道理嘛 ...
- 二、redis集群搭建
redis集群搭建 redis3.0后支持集群.集群中应该至少有三个节点,每个节点有一备份节点.需要6台服务器.搭建伪分布式,需要6个redis实例.搭建集群的步骤: 一.安装单机版redis 第一步 ...
- redis集群搭建及注意事项
上一篇:redis的安装及注意事项 这里,在一个Linux虚拟机上搭建6个节点的redis伪集群,思路很简单,一台虚拟机上开启6个redis实例,每个redis实例有自己的端口.这样的话,相当于模拟出 ...
- [转载] Redis集群搭建最佳实践
转载自http://blog.csdn.net/sweetvvck/article/details/38315149?utm_source=tuicool 要搭建Redis集群,首先得考虑下面的几个问 ...
- Redis集群搭建-韩国庆
认真一步一步搭建下来,就可以成功.... Redis-cluster集群架构讲解 redis集群专业名词称之为Redis-cluster,redis集群是从3.0版本以后才有的概念,也就是说在3.0之 ...
- redis集群搭建及设置账户(转)
Redis集群搭建以及为集群设置密码 介绍安装环境与版本 用两台虚拟机模拟6个节点,一台机器3个节点,创建出3 master.3 salve 环境. redis 采用 redis-3.2.4 版本. ...
随机推荐
- 在android中画圆形图片的几种办法
在开发中常常会有一些需求,比方显示头像,显示一些特殊的需求,将图片显示成圆角或者圆形或者其它的一些形状. 可是往往我们手上的图片或者从server获取到的图片都是方形的.这时候就须要我们自己进行处理, ...
- log4j实现每一个线程保存一个日志文件
log4j.properties: ### direct log messages to stdout ### log4j.appender.stdout=org.apache.log4j.Conso ...
- 前端性能优化:使用Array.prototype.join代替字符串连接
来源:GBin1.com 有一种非常简单的客户端优化方式,就是用Array.prototype.join代替原有的基本的字符连接的写法.在这个系列的第一篇中,我在代码中使用了基本字符连接: htmlS ...
- 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-如何添加自定义Task,如何让程序的一部分拥有不同的执行周期
右击Tasks,添加一个新的Task,可以设置这个新的任务的扫描周期,比如100ms 右击PLC的整个的Project,然后Add一个Referenced Task,选中你新建的Task 在P ...
- WebService 之 协议篇
Web Service 使用的是 SOAP (Simple Object Access Protocol)简单对象访问协议,是交换数据的一种协议规范,是一种轻量的.简单的.基于XML(标准通用标记语言 ...
- NGUI图集切割代码
原地址:http://blog.csdn.net/u011440375/article/details/9707491 因为最近工作用NGUI比较多,修改图集时还没原图,有时候需要把图集重新切割开来, ...
- 使用 dbdeploy.net 管理数据库变更
使用 dbdeploy.net 管理数据库变更 没有包含数据库的持续集成都是假的.这可不是我说的.一直以来都没能找到一个理想的数据库变更管理工具.直到转了 java 再回来,才发现 dbdeploy ...
- 04-hibernate注解-一对一双向外键关联
一对一双向外键 1,主控方的配置同一对一单向外键关联. 2,@OneToOne(mappedBy="card") //被控方 @OneToOne(mappedBy="ca ...
- 5种样式实现div容器中三图摆放实例对比说明
代码地址如下:http://www.demodashi.com/demo/11593.html 效果演示: demo点查看效果 需求说明: 如下图所示为设计图,希望在图片上传无规则无规律的情况下实现设 ...
- HBase ProcedureV2 分析
Procedure V2, 是hbase1.1版本引入的一套fault-tolerant的执行multi-steps-job的框架, 目前主要用在Master中, 比如创建表,删除表等操作 新旧比较 ...