集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术。

集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。

  Redis集群:如果部署到多台电脑,就跟普通的集群一样;因为Redis是单线程处理的,多核CPU也只能使用一个核。所以部署在同一台电脑上,通过运行多个Redis实例组成集群,然后能提高CPU的利用率。

  Windows下搭建Redis集群:需要4个部件:Redis、Ruby语言运行环境、Redis和Ruby驱动redis.xxxx.gem、创建Redis集群的工具redis-trib.rb。

一、下载并安装Redis

安装Redis并运行3个或3个以上实例,低于3个无法创建。

 

  安装之前修改redis.windows.conf文件中配置:

 

1 cluster-enabled yes                                    #是否开启集群
2 cluster-config-file nodes.6380.conf
3 cluster-node-timeout 15000
4 cluster-slave-validity-factor 10
5 cluster-migration-barrier 1
6 cluster-require-full-coverage yes

二、Ruby语言运行环境下路径(http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.2.4-x64.exe

下载后,双击安装即可,同样,为了操作方便,也是建议安装在盘符根目录下,如: C:\Ruby23-x64 ,安装时这里选中后两个选项, 意思是将ruby添加到系统的环境变量中,在cmd命令中能直接使用ruby的命令

我操作的时候没有截图  下面部分图片 网上找的别的博客里面的图片

redis increment 相反的 redis两种_redis increment 相反的

 

使用redis-trib.rb工具来创建Redis集群,由于该文件是Ruby语言写的,需要安装Ruby开发环境,以驱动redis-xxxx.gem。

三、驱动Redis.xxxx.gem(考虑到兼容性下载的3.2.2版本  https://rubygems.org/gems/redis/versions/3.2.2

redis increment 相反的 redis两种_redis increment 相反的_02

 

四、创建工具redis-trib.rb(https://raw.githubusercontent.com/MSOpenTech/redis/3.0/src/redis-trib.rb 打开该链接如果没有下载,而是打开一个页面,那么将该页面保存为redis-trib.rb, 建议保存到Redis的目录下)

注意:因为redis-trib.rb是ruby代码,必须用ruby来打开,若redis-trib.rb无法识别,需要手动选择该文件的打开方式:

redis increment 相反的 redis两种_redis_03

redis increment 相反的 redis两种_Redis_04

**选择ruby为的打开方式后,redis-trib.rb的logo都会发生改变,如下图:

redis increment 相反的 redis两种_Redis_05

 

二、架设

CMD下切换到Redis目录,使用redis-trib.rb来创建Redis集群:

redis-trib.rb create --replicas 1 127.0.0.1:7379 127.0.0.1:7380 127.0.0.1:7381 127.0.0.1:7382 127.0.0.1:7383 127.0.0.1:7384
#replicas 1 表示我们希望为集群中的每个主节点创建一个从节点 上述6个服务,是3主3从
我本地模拟是没有从全部是主 所以replicas 0 
执行上述代码 出现如下错误提示:

解决方案:

#将每个节点下aof、rdb、nodes.conf本地备份文件删除; 
127.0.0.1:7379> flushdb #清空当前数据库(可省略) 
127.0.0.1:7380> flushdb #清空当前数据库(可省略) 
127.0.0.1:7391> flushdb #清空当前数据库(可省略) 
#之后再执行脚本,成功执行;

redis increment 相反的 redis两种_Redis_06

输入yes后如果出现下列情况

redis increment 相反的 redis两种_ruby_07

slot插槽被占用了(这是 搭建集群前时,以前redis的旧数据和配置信息没有清理干净。需要清除键值存储,用redis-cli 登录到每个节点执行  flushall  和 cluster reset  就可以了。

redis increment 相反的 redis两种_Redis_08

然后再次运行当出现提示时,需要手动输入yes,输入后,当出现以下内容,说明已经创建了Redis集群

redis increment 相反的 redis两种_redis_09

redis increment 相反的 redis两种_Redis_10

系统会根据算法分配到redis中

 检查是否创建成功,使用 

redis-trib.rb check 127.0.0.1:7380

  

redis increment 相反的 redis两种_redis_11

创建成功

通过 cluster info 查看集群信息

cluster info

  

redis increment 相反的 redis两种_redis_12