Redis集群部署文档(centos6.3系统)
在3.0(不过现在还在rc版本)自身提供了cluster的方法,能做主从,集群。
部署要求:要让集群正常工作至少需要3个主节点,在这里我们最少创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下,三台redis服务器:
10.131.177.166:6379
10.131.177.166:6380
10.133.193.93:6381
10.133.193.93:6382
10.105.2.248:6383
10.105.2.248:6384
第一步:
安装redis3.0,安装这里就不说了,我提供的有redis-stable.tar.gz安装包
第二步:
三台服务器我们来按照端口的不同来进行划分,6379、6380、6381、6382、6383、6384
创建这样6个目录,每个目录里有这样两个文件:redis-server、redis.conf
redis-server是从redis的安装目录中的src里copy过来就好
redis.conf内容如下;
+++++++++++++++++++++++++++++++
port 6379 #不同目录,这里端口对应不同
cluster-enabled yes #开启集群功能
cluster-config-file nodes.conf #节点配置文件,这个文件是服务启动时自己配置创建的
cluster-node-timeout 5000
appendonly yes
++++++++++++++++++++++++++++++++
那么6个服务器都配置好后则启动他们,方法如下:./redis-server ./redis.conf
启动好以后查看一下是否都已经成功运行了 ps aux|grep redis
第三步
93服务器上创建集群
./redis-trib.rb create --replicas 1 10.131.177.166:6379 10.131.177.166:6380 10.133.193.93:6381 10.133.193.93:6382 10.105.2.248:6383 10.105.2.248:6384
这里的--replicas 1 表示每个主节点下有一个从节点
1执行上面的命令的时候会报错,因为是执行的ruby的脚本,需要ruby的环境
错误内容:/usr/bin/env: ruby: No such file or directory
所以需要安装ruby的环境,这里推荐使用yum install ruby安装
yum install ruby
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
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
4如是内网,请搜索redis-3.0.6.gem接口文件进行下载,手动安装
gem install redis-3.0.6.gem
第四步
再次执行,创建集群命令:
./redis-trib.rb create --replicas 1 10.131.177.166:6379 10.131.177.166:6380 10.133.193.93:6381 10.133.193.93:6382 10.105.2.248:6383 10.105.2.248:6384
记得输入“yes”
第五步
下面进行测试,使用redis-cli
首先登入6380这个端口的redis服务
./redis-cli -c -h 10.131.177.166 -p 6380
10.131.177.166:6380> set name yu
退出后重新登入6379端口的redis服务
./redis-cli -c -h 10.131.177.166 -p 6379
10.131.177.166:6379> get name #如果没有集群的话,这里肯定是没有的,现在则出现如下情况
-> Redirected to slot [5798] located at 10.131.177.166:6380
"yu"
qq交流群:316835094