redis集群搭建测试-2
集群环境至少需要3个节点。推荐使用6个节点配置,即3个主节点,3个从节点。我们在一台机器上开启多个Redis的实例。
第一步:创建一个文件夹redis-cluster,然后在下面建立6个文件夹如下:
(1)、mkdir -p /usr/local/redis-cluster
(2)、mkdir 7001, mkdir 7002,mkdir 7003,mkdir 7004,mkdir 7005,mkdir 7006
第二步:把之前的redis.conf配置文件分别copy到700*文件夹下,进行修改各个配置文件的内容,也就是对700*文件夹下的配置文件进行修改。
(1). daemonize yes
(2). port 700* (分别对每个机器的端口号进行设置)
(3). bind hostname/ip (必须绑定当前机器的主机名或者IP地址)
(4). dir /usr/local/redis-cluster/700*/ (指定数据文件的存放位置,必须要指定不同的存放目录)
(5). cluster-enabled yes (启动集群模式)
(6). cluster-config-file nodes-700*.conf (这里的700*最好和port对应上)
(7). cluster-node-timeout 5000
(8). appendonly yes
第三步:把修改后的配置文件,分别copy到各个文件***意每个文件夹要修改端口号,并且nodes文件也要不相同。
第四步:由于redis集群需要使用ruby命令,所以我们需要安装ruby。
(1). yum install ruby
(2). yum install rubygems
(3). gem install redis (安装redis和ruby的接口)
第五步:分别启动6个redis的实例,然后检查启动是否成功。
(1). [[email protected] local]# /usr/local/redis-3.2.0/src/redis-server /usr/local/redis-cluster/700*/redis.conf
(2). netstat -tunpl | grep redis
第六步:首先到redis的安装目录下,然后执行redis-trib.rb命令。
(1). [[email protected] local]# cd redis-3.2.0/src/
(2). [[email protected] src]# ./redis-trib.rb create --replicas 1 npf1:7001 npf1:7002 npf1:7003 npf1:7004 npf1:7005 npf1:7006
可是当我们输入yes的时候,却出现下面的异常:
ERR Invalid node address specified: npf1:7001 (Redis::CommandError)
后来查阅资料才知道:由于redis-trib.rb 对域名或主机名支持不好,故在创建集群的时候要使用ip:port的方式。
以下是一些常见的问题解决方式:
(1). 创建集群时报某个err slot 0 is already busy (redis::commanderror)
这是由于之间创建集群没有成功,需要将nodes.conf和dir里面的文件全部删除(注意不要删除了redis.conf)
(2). 创建集群时一直处于"Waiting for the cluster to join...................................."的状态
这个问题原因不知,但解决方法是在redis.conf文件中把bind
127.0.0.1本地环回口改为物理接口
(3). 安装ruby redis时长时间没响应
这是由于天朝网络,解决办法是改ruby源(请自行baidu)或手动安装
ok, 为了解决问题,我们必须把700*/ 目录下的redis.conf配置文件中的bind npf1 改变成为bin 192.168.1.76 的IP地址。
现在我们执行下面的命令:
[[email protected] src]# ./redis-trib.rb create --replicas 1 192.168.1.76:7001 192.168.1.76:7002 192.168.1.76:7003 192.168.1.76:7004 192.168.1.76:7005 192.168.1.76:7006
到此为此,集群已经创建成功了。
第七步:进行验证。
(1)、连接任意一个客户端即可。
./redice-cli -c -h -p (-c表示集群模式,-h表示指定IP地址,-p表示指定端口号)。
例如:[[email protected] src]# ./redis-cli -c -h 192.168.1.76 -p 7001
(2)、进行验证:cluster info (查看集群信息), cluster nodes (查看节点列表)
详:http://blog.****.net/pfnie/article/details/52199639