Redis3.0集群安装

2016-12-13 09:38:02来源:oschina作者:xiaozhou18人点击

一、准备环境


(要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下)


node11:7000 node11:7001


node11:7002


node11:7003


node11:7004


node11:7005


二、下载地址:http://download.redis.io/releases/redis-3.0.0.tar.gz
三、上传服务器,解压,编译

tar -zxvf redis-3.0.0.tar.gz


mv redis-3.0.0.tar.gz redis3.0


cd /usr/local/redis3.0


make


make install


四、创建集群需要的目录

mkdir -p /usr/local/cluster


cd /usr/local/cluster


mkdir 7000


mkdir 7001


mkdir 7002


mkdir 7003


mkdir 7004


mkdir 7005


五、修改配置文件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参数,分别改为对应的文件夹的名称


六、分别启动这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


如下图显示则说明启动成功



七、执行redis的创建集群命令创建集群

cd /usr/local/redis3.0/src


./redis-trib.rb create --replicas 1 192.168.1.160:7000 192.168.1.160:7001 192.168.1.160:7002 192.168.1.160:7003 192.168.1.160:7004 192.168.1.160:7005


执行上面的命令的时候可能会报错,因为是执行的ruby的脚本,需要ruby的环境


错误内容:/usr/bin/env: ruby: No such file or directory


所以需要安装ruby的环境,这里推荐使用yum install ruby安装


yum install ruby


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


错误内容:


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


from ./redis-trib.rb:24


yum install rubygems


再次执行第7步的命令,可能还会报错,提示不能加载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


再次执行第7步的命令,正常执行



输入yes,然后配置完成。



至此redis集群即搭建成功!


八:使用redis-cli命令进入集群环境

redis-cli -c -p 7000


九、Redis3.0集群添加节点
1、首先把需要添加的节点启动

cd /usr/local/cluster/


mkdir 7006


cp /usr/local/cluster/redis.conf /usr/local/cluster/7006/


cd /usr/local/cluster/7006/


vi redis.conf


##修改redis.conf中的port参数的值为7006


redis-server redis.conf


2、执行以下命令,将这个新节点添加到集群中

cd /usr/local/redis3.0/src/


./redis-trib.rb add-node 192.168.1.160:7006 192.168.1.160:7000



3、执行命令redis-cli -c -p 7000 cluster nodes,查看刚才新增的节点
4、增加了新的节点之后,这个新的节点可以成为主节点或者是从节点

把这个节点变成主节点,使用redis-trib程序,将集群中的某些哈希槽移动到新节点里面, 这个新节点就成为真正的主节点了。


执行下面的命令对集群中的哈希槽进行移动



然后还需要指定把这些哈希槽转移到哪个节点上



输入我们刚才新增的节点的ID


830d7afff64fce647589d7bf0b57437e0b5e22da


然后需要我们指定转移哪几个节点的哈希槽


输入all 表示从所有的主节点中随机转移,凑够1000个哈希槽


然后再输入yes,redis集群就开始分配哈希槽了。


至此,一个新的主节点就添加完成了,执行命令查看现在的集群中节点的状态


redis-cli -c -p 7000 cluster nodes



5、把这个节点变成从节点

前面我们已经把这个新节点添加到集群中了,现在我们要让新节点成为192.168.1.160:7001的从节点,只需要执行下面的命令就可以了,命令后面的节点ID就是192.168.1.160:7001的节点ID


redis-cli -c -p 7006 cluster replicate 0b00721a509444db793d28448d8f02168b94bd38


使用下面命令来确认一下192.168.1.160:7006是否已经成为192.168.1.160:7001的从节点


redis-cli -p 7000 cluster nodes | grep slave | grep 0b00721a509444db793d28448d8f02168b94bd38


十、Redis3.0集群删除节点

1:如果删除的节点是主节点,这里我们删除192.168.1.160:7006节点,这个节点有1000个哈希槽


首先要把节点中的哈希槽转移到其他节点中,执行下面的命令



cd /usr/local/redis3.0/src

./redis-trib.rb reshard 192.168.1.160:7000



系统会提示我们要移动多少哈希槽,这里移动1000个,因为192.168.1.160:7006节点有1000个哈希槽


然后系统提示我们输入要接收这些哈希槽的节点的ID,这里使用192.168.1.160:7001的节点ID


然后要我们选择从那些节点中转出哈希槽,这里一定要输入192.168.1.160:7006这个节点的ID,最后输入 done 表示输入完毕


最后一步,使用下面的命令把这个节点删除



cd /usr/local/redis3.0/src/

./redis-trib.rb del-node 192.168.1.160:7000 需要删除的节点ID



2:如果节点是从节点的,直接使用下面的命令删除即可。



cd /usr/local/redis3.0/src/

./redis-trib.rb del-node 192.168.1.160:7000 需要删除的节点ID




最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台