redis伪集群搭建

redis3.0版本主要增加了redis集群功能。

Waiting for the cluster to join 很久都没有反应

err slot 0 is already busy (redis::commanderror)解决

 

一、前提条件

①yum install gcc-c++

②ruby环境

安装命令:

yum install ruby

yum install rubygems

③ruby和redis的接口程序

拷贝redis-3.0.0.gem至 /usr/local/redis下

执行命令:

gem install /usr/local/redis/redis-3.0.0.gem

二、集群环境规划

6台服务器(三主三从)

主节点:

111.231.87.104:7001 111.231.87.104:7002 111.231.87.104:7003

从节点:

111.231.87.104:7004 111.231.87.104:7005 111.231.87.104:7006

 

三、建立伪集群环境

执行命令:

cd /usr/local

mkdir redis-cluster

拷贝/usr/local/redis/bin到redis-cluster目录下

复制6个redis

执行命令:

cd /usr/local/redis

cp -r bin /usr/local/redis-cluster/redis01

修改配置文件

port:7001

cluster-enable yes

拷贝/mysoft/redis/*.rb 到redis-cluster下

编写启动/关闭脚本

创建集群

./redis-trib.rb create --replicas 1 192.168.52.128:7001 192.168.52.128:7002 192.168.52.128:7003 192.168.52.128:7004 192.168.52.128:7005 192.168.52.128:7006

连接集群客户端

./redis01/redis-cli -h 111.231.87.104 -p 7001 -c

-h IP地址

-p 端口号

-c 表示集群

四、问题解决

①err slot 0 is already busy (redis::commanderror)

卡槽被占用

检查命令

./redis-trib.rb check 111.231.87.104:7001

修复命令

./redis-trib.rb fix 111.231.87.104:7001

后删除生成的文件(如果数据不需要)

一直等待 Waiting for the cluster to join 很久都没有反应

redis集群不仅需要开通客户端端口,还要开通集群总线端口

需要当前端口号+10000

7001 → 17001

7002 → 17002

7003 → 17003

7004 → 17004

7005 → 17005

7006 → 17006

        我这里开了6个redis实例,共需要12个端口号

 

 

 

.

 

 

 

 

 

 

 

你可能感兴趣的:(服务部署)