3、安装Redis集群
wget http://download.redis.io/releases/redis-3.2.8.tar.gz
tar -vxzf redis-3.2.8.tar.gz
cd redis-3.2.8
make && make install
# 创建redis主目录
mkdir /usr/local/redis
# 拷贝redis.conf到主目录
cp ~/redis-3.2.8/redis.conf /usr/local/redis
bind 0.0.0.0
daemonize yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
scp /usr/local/redis/redis.conf root@node2:/usr/local/redis/
scp /usr/local/redis/redis.conf root@node3:/usr/local/redis/
scp /usr/local/redis/redis.conf root@node4:/usr/local/redis/
scp /usr/local/redis/redis.conf root@node5:/usr/local/redis/
scp /usr/local/redis/redis.conf root@node6:/usr/local/redis/
# 启动
redis-server /usr/local/redis/redis.conf
# 停止
redis-cli -h 127.0.0.1 -p 6379 shutdown
# 安装ruby
yum -y install ruby ruby-devel rubygems rpm-build
# 从ruby的gem工具包安装redis
gem install redis
# 拷贝redis-trib.rb到可执行目录
cp ~/redis-3.2.8/src/redis-trib.rb /usr/local/bin/
# 建立集群
redis-trib.rb create --replicas 1 192.168.2.11:6379 192.168.2.12:6379 192.168.2.13:6379 192.168.2.14:6379 192.168.2.15:6379 192.168.2.16:6379
# 选项 --replicas 1 表示我们希望为集群中的每个主节点创建一个从节点。
# 之后跟着的其他参数则是实例的地址列表,格式ip:port,注意要使用IP地址,不要使用域名。
# 常见错误
1、配置完所有主节点后,报" ERR Invalid node address specified"
由于redis-trib.rb 对域名或主机名支持不好,故在创建集群的时候要使用ip:port的方式
redis-trib.rb create ip1:port1 ip2:port2 ip3:port3
2、创建集群时报某个err slot 0 is already busy (redis::commanderror)
这是由于之间创建集群没有成功,需要将nodes.conf和dir里面的文件全部删除(注意不要删除了redis.conf)
3、创建集群时一直处于"Waiting for the cluster to join...................................."的状态
这个问题原因不知,但解决方法是在redis.conf文件中把bind 127.0.0.1本地环回口改为物理接口.
4、安装ruby redis时长时间没响应
这是由于天朝网络,解决办法是改ruby源(请自行baidu)或手动安装
5、[ERR] Node XXX.XXX.XXX.XXX:XXXX is not empty. Either the nodealready knows other nodes (check with CLUSTER NODES) or contains some
$redis-cli
127.0.0.1:7000> flushall
127.0.0.1:7000> cluster reset
127.0.0.1:7000> exit
# redis-cli 也可以作为集群的客户端工具,要想访问集群,只需连接任意一个redis实例即可。使用-c参数
# 在其中任意一台机器上执行set:
redis-cli -c -p 6379
127.0.0.1:6379> set name zhangsanfeng
-> Redirected to slot [5798] located at 127.0.0.1:7001
OK
# 在另外一台机器上执行get:
127.0.0.1:6379> get name
"zhangsanfeng"