redis cluster 集群配置示例: 创建, 添加节点, 重新分片, 删除节点

1 redis集群搭建

Redis 3.0.0正式版开始官方支持集群,  下面开始做一个集群配置的示例.

 

官网地址: http://redis.io/download

当前最新版下载地址: http://download.redis.io/releases/redis-3.2.0.tar.gz

 

[root@localhost ~]# wget http://download.redis.io/releases/redis-3.2.0.tar.gz

[root@localhost ~]# tar xf redis-3.2.0.tar.gz

[root@localhost ~]# cd redis-3.2.0

[root@localhost redis-3.2.0]# make && make PREFIX=/usr/local/redis install

 

安装之后复制 src/redis-trib.rb 文件到/usr/local/redis/bin/ ,后续创建集群的时候用的着.这是官方提供的一个用ruby语言编写的用于创建redis集群的工具.

 

[root@localhost redis-3.2.0]# cp -a src/redis-trib.rb /usr/local/redis/bin/

  


 

接着我们创建6个目录,对应6redis实例,在创建集群时,将分三个主实例,三个从实例.(事实上,一个实例就可以创建集群,但是redis-trib.rb工具默认至少需要三个实例方可创建集群,这也是为了集群的自动故障转移功能可用,如果某个主节点挂了,会自动选举一个它的从节点替代它作为主节点)

 

...# mkdir -p /data/redis-cluster/{7001,7002,7003,7004,7005,7006}

...# ls /data/redis-cluster/

7001  7002  7003  7004  7005  7006

 

复制redis包根目录下的redis.conf配置文件到各个节点目录下

...# for dir in /data/redis-cluster/700* ; do cp -v redis.conf $dir ; done

 

 

 

然后修改配置文件.因为是在一台机器模拟多个节点,所以主要是修改各个实例的端口以及确保去掉了集群的配置注释.主要是以下三个配置项:

 

cluster-enabled yes

cluster-config-file nodes-6379.conf //这个文件不能删除也不能去修改

cluster-node-timeout 15000

 

[root@localhost redis-3.2.0]# for dir in /data/redis-cluster/700*; do

sed -r -i "

s@^\s*port.*@port ${dir##*/}@ ;

s@^\s*daemonize.*@daemonize yes@ ;

s@^\s*pidfile.*@pidfile /var/run/redis_${dir##*/}.pid@ ;

s@^\s*logfile.*@logfile /var/log/redis_${dir##*/}.log@;

s@^\s*#?\s*cluster-enabled.*@cluster-enabled yes@;

s@^\s*#?\s*cluster-config-file.*@cluster-config-file $dir/nodes-${dir##*/}.conf@;

s@^\s*#?\s*cluster-node-timeout.*@cluster-node-timeout 15000@;

s@^\s*dir.*@dir $dir@;

" $dir/redis.conf

done

 

 

 

可以去看下配置是否修改正确, 确认修改无误后启动这6个实例.

 

... # for dir in /data/redis-cluster/700*; do /usr/local/redis/bin/redis-server $dir/redis.conf ; done

 

 

 

可以看到6个实例都以cluster的方式正常工作了,接下来就是配置集群.

这就用到了 redis-trib.rb 这个工具了, 因为这个工具是ruby写的,所以需要ruby环境的支持,我们需要安装下ruby环境, 否则无法运行此工具.

[root@localhost redis-3.2.0]# yum -y install ruby rubygems

 

注意:请确保 ruby版本是 1.8.7+版本,  否则,执行 redis-trib.rb命令时可能会提示无法连接redis服务.

 

[root@localhost redis-3.2.0]# ruby --version

ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]

[root@localhost redis-3.2.0]#

 

接着安装ruby环境的redis, 注意,  因天朝特殊的网络环境的原因,我们可能需要更换一下 gem的镜像,  更换镜像可以使用淘宝的,请参考:http://ruby.taobao.org/ 

 

[root@localhost redis-3.2.0]# gem install redis

 

 

好了,开始使用redis-trib.rb 这个工具创建集群.可以先执行redis-trib.rb看看这个工具的用法.

 

[root@localhost redis-3.2.0]# /usr/local/redis/bin/redis-trib.rb

Usage: redis-trib <command> <options> <arguments ...>

 

  info            host:port

  reshard         host:port

                  --pipeline <arg>

       &n

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值