redis集群需要至少6个节点(偶数节点),3个主节点,3个从节点。注意:集群模式最好不要keys *查询数据。
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(我用的目录是/opt/soft/redis-3.0.0/cluster,我大部分软件安装在这个路径)
cd /usr.local/cluster
4 修改配置文件redis.conf,我共用了6个节点,端口号分别为30001,30002,30003,30004,30005,30006。复制成6个redis-port.conf文件,分别更改端口号。
cp /opt/soft/redis-3.0.0/redis.conf /opt/soft/redis-3.0.0/cluster vim redis.conf
###修改配置文件中的下面选项
port 30001 #分别更改
daemonize yes #允许后台启动,不用再另开终端
cluster-enabled yes
cluster-config-file odes
cluster-node-timeout 5000
appendonly yes
5 分别启动6个redis实例:若该机器同时有redis-2.x,且redis-server已设置为系统命令,可使用全路径启动。
e.g. /opt/soft/redis-3.0.0/src/redis-server ../cluster/redis-port.conf(我的路径)
redis-server redis-port.conf
ps -ef|grep redis 查看进程号,确认启动情况,如下成功。
6 执行redis的创建集群命令创建集群,执行后自动确认前三个为主节点,后三个为从节点,按顺序主从对应(可使用info查看)。
cd /opt/soft/redis3.0/src ./redis-trib.rb create --replicas 1 127.0.0.1:30001 127.0.0.1:30002 127.0.0.1:30003 127.0.0.1:30004 127.0.0.1:30005 127.0.0.1:30006
6.1 执行命令后报如下错误:
[root@bjdhj-118-38 src]# ./redis-trib.rb create --replicas 1 127.0.0.1:30001 127.0.0.1:30002 127.0.0.1:30003 127.0.0.1:30004 127.0.0.1:30005 127.0.0.1:30006:
/usr/bin/env: ruby: 没有那个文件或目录
因为需要ruby命令,而该机器未安装,安装命令
yum install ruby
6.2 再次执行命令后报如下错误:
./redis-trib.rb:24:in `require': no such file to load -- rubygems (LoadError)
from ./redis-trib.rb:24
提示缺少rubygems组件,使用yum安装,安装命令:
yum install rubygems
6.3 再次执行名后报如下错误:
/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
提示不能加载redis,是因为缺少redis和ruby的接口,使用gem 安装,安装命令:
gem install redis
7 再次执行命令,成功:
输入“yes”安装成功,连接各节点检查确认正常。至此redis集群即搭建成功!可以跑数据进去来使用啦。叮叮叮