`

redis-cluster

 
阅读更多
redis-cluster集群配置:
配置要求,至少3台master,3台slave,共6台服务,否则会报下面的错误:
*** ERROR: Invalid configuration for cluster creation.
*** Redis Cluster requires at least 3 master nodes.
*** This is not possible with 4 nodes and 1 replicas per node.
*** At least 6 nodes are required.

redis-cluster集群配置:
(要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下)
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:下载redis。官网下载3.0.0版本,之前2.几的版本不支持集群模式
下载地址:https://github.com/antirez/redis/archive/3.0.0-rc2.tar.gz
2:上传服务器,解压,编译
tar -zxvf redis-3.0.0-rc2.tar.gz 
mv redis-3.0.0-rc2.tar.gz redis3.0
cd /usr/local/redis3.0
make
make install

3:创建集群需要的目录
mkdir -p /usr.local/cluster
cd /usr.local/cluster
mkdir 7000
mkdir 7001
mkdir 7002
mkdir 7003
mkdir 7004
mkdir 7005

4:修改配置文件redis.conf
cp /usr/local/redis3.0/redis.conf  /usr.local/cluster
vi redis.conf
##修改配置文件中的下面选项
port 7000
daemonize yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
##修改完redis.conf配置文件中的这些配置项之后把这个配置文件分别拷贝到7000/7001/7002/7003/7004/7005目录下面
cp /usr/local/cluster/redis.conf /usr/local/cluster/7000
cp /usr/local/cluster/redis.conf /usr/local/cluster/7001
cp /usr/local/cluster/redis.conf /usr/local/cluster/7002
cp /usr/local/cluster/redis.conf /usr/local/cluster/7003
cp /usr/local/cluster/redis.conf /usr/local/cluster/7004
cp /usr/local/cluster/redis.conf /usr/local/cluster/7005

##注意:拷贝完成之后要修改7001/7002/7003/7004/7005目录下面redis.conf文件中的port参数,分别改为对应的文件夹的名称

5:分别启动这6个redis实例
cd /usr/local/cluster/7000
redis-server redis.conf
cd /usr/local/cluster/7001
redis-server redis.conf
cd /usr/local/cluster/7002
redis-server redis.conf
cd /usr/local/cluster/7003
redis-server redis.conf
cd /usr/local/cluster/7004
redis-server redis.conf
cd /usr/local/cluster/7005
redis-server redis.conf


##启动之后使用命令查看redis的启动情况ps -ef|grep redis
如下图显示则说明启动成功

6:执行redis的创建集群命令创建集群
cd /usr/local/redis3.0/src
./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

6.1执行上面的命令的时候会报错,因为是执行的ruby的脚本,需要ruby的环境
错误内容:/usr/bin/env: ruby: No such file or directory
所以需要安装ruby的环境,这里推荐使用yum install ruby安装
yum install ruby

6.2然后再执行第6步的创建集群命令,还会报错,提示缺少rubygems组件,使用yum安装

错误内容:
./redis-trib.rb:24:in `require': no such file to load -- rubygems (LoadError)
from ./redis-trib.rb:24

yum install rubygems

6.3再次执行第6步的命令,还会报错,提示不能加载redis,是因为缺少redis和ruby的接口,使用gem 安装
错误内容:
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- redis (LoadError)
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from ./redis-trib.rb:25
 
gem install redis





1,redis启动:
./redis-server ../conf/redis103.conf > ../logs/redis103.log 2>&1 & ./redis-server ../conf/redis104.conf > ../logs/redis104.log 2>&1 & ./redis-server ../conf/redis105.conf > ../logs/redis105.log 2>&1 & ./redis-server ../conf/redis106.conf > ../logs/redis106.log 2>&1 & ./redis-server ../conf/redis107.conf > ../logs/redis107.log 2>&1 & ./redis-server ../conf/redis108.conf > ../logs/redis108.log 2>&1 & 

2,使用redis-trib.rb构建集群:
./redis-trib.rb  create --replicas 1 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385

3,检查集群状态:
./redis-trib.rb check 172.30.150.101:6380

以下为正常启动后的状态,3台master,3台slave
>>> Performing Cluster Check (using node 127.0.0.1:6380)
M: 20ea61f4dc8960a0df73d1f06427ba69aa13ef2b 127.0.0.1:6380
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
S: 38163ea4ae30ae6c1c546844b222f50079ae720a 127.0.0.1:6384
   slots: (0 slots) slave
   replicates 6e2b53cc7d7da5eee5b355bf576f04dc0a42600c
M: 06a4c9ad616668056b5f24ea2b0225a80d9c31f3 127.0.0.1:6382
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
S: 328d3f60769522e6141997a508db0931dce12446 127.0.0.1:6385
   slots: (0 slots) slave
   replicates 06a4c9ad616668056b5f24ea2b0225a80d9c31f3
M: 6e2b53cc7d7da5eee5b355bf576f04dc0a42600c 127.0.0.1:6381
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
S: 7125e9f536c09c9a84b2646ef2f7604cc85e66d0 127.0.0.1:6383
   slots: (0 slots) slave
   replicates 20ea61f4dc8960a0df73d1f06427ba69aa13ef2b
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.


问题:
cluster环境下redis的slave不接受任何读写操作
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics