下载
编译
将下载好的安装包redis-3.2.9.tar.gz上传到服务器解压,例如解压到/opt下面,执行make && make install
cd /opt/redis-3.2.9
make && make install
安装前准备
创建目录
mkdir -p /opt/redis/cluster/7000/bin
mkdir -p /opt/redis/cluster/7001/bin
mkdir -p /opt/redis/cluster/7002/bin
mkdir -p /opt/redis/cluster/7003/bin
mkdir -p /opt/redis/cluster/7004/bin
mkdir -p /opt/redis/cluster/7005/bin
mkdir -p /opt/redis/cluster/bin
复制启动脚本
cp /opt/redis-3.2.9/src/redis-server /opt/redis/cluster/7000/bin
cp /opt/redis-3.2.9/src/redis-cli /opt/redis/cluster/7000/bin
cp /opt/redis-3.2.9/src/redis-server /opt/redis/cluster/7001/bin
cp /opt/redis-3.2.9/src/redis-cli /opt/redis/cluster/7001/bin
cp /opt/redis-3.2.9/src/redis-server /opt/redis/cluster/7002/bin
cp /opt/redis-3.2.9/src/redis-cli /opt/redis/cluster/7002/bin
cp /opt/redis-3.2.9/src/redis-server /opt/redis/cluster/7003/bin
cp /opt/redis-3.2.9/src/redis-cli /opt/redis/cluster/7003/bin
cp /opt/redis-3.2.9/src/redis-server /opt/redis/cluster/7004/bin
cp /opt/redis-3.2.9/src/redis-cli /opt/redis/cluster/7004/bin
cp /opt/redis-3.2.9/src/redis-server /opt/redis/cluster/7005/bin
cp /opt/redis-3.2.9/src/redis-cli /opt/redis/cluster/7005/bin
cp /opt/redis-3.2.9/src/redis-trib.rb /opt/redis/cluster/bin
在每个redis实例文件夹下创建配置文件redis.conf,内容如下,注意每个实例要配置自己的端口号
port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
protected-mode no
安装必要的工具,按顺序执行下面的命令,
yum install ruby
yum install rubygems
gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/
gem install redis
启动redis集群
先启动redis实例
cd /opt/redis/cluster/7000
nohup ./bin/redis-server redis.conf > /dev/null &
以此类推启动所有redis的实例
创建集群
cd /opt/redis/cluster/bin
./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
创建过程中会提示Can I set the above configuration? (type 'yes' to accept):
这时,输入yes
即可。这样就创建了3个master的redis节点
Using 3 masters:
127.0.0.1:7000
127.0.0.1:7001
127.0.0.1:7002
测试
运行下面的命令,测试集群是否可用
cd /opt/redis/cluster/7000/bin
./redis-cli -c -p 7000
127.0.0.1:7000> set foo bar
-> Redirected to slot [12182] located at 127.0.0.1:7002
OK
127.0.0.1:7002> get foo
"bar"
最终目录结构
/opt/redis
└── cluster
├── 7000
│ ├── appendonly.aof
│ ├── bin
│ │ ├── redis-cli
│ │ └── redis-server
│ ├── dump.rdb
│ ├── nodes.conf
│ └── redis.conf
├── 7001
│ ├── appendonly.aof
│ ├── bin
│ │ ├── redis-cli
│ │ └── redis-server
│ ├── dump.rdb
│ ├── nodes.conf
│ └── redis.conf
├── 7002
│ ├── appendonly.aof
│ ├── bin
│ │ ├── redis-cli
│ │ └── redis-server
│ ├── dump.rdb
│ ├── nodes.conf
│ └── redis.conf
├── 7003
│ ├── appendonly.aof
│ ├── bin
│ │ ├── redis-cli
│ │ └── redis-server
│ ├── dump.rdb
│ ├── nodes.conf
│ └── redis.conf
├── 7004
│ ├── appendonly.aof
│ ├── bin
│ │ ├── redis-cli
│ │ └── redis-server
│ ├── dump.rdb
│ ├── nodes.conf
│ └── redis.conf
├── 7005
│ ├── appendonly.aof
│ ├── bin
│ │ ├── redis-cli
│ │ └── redis-server
│ ├── dump.rdb
│ ├── nodes.conf
│ └── redis.conf
└── bin
└── redis-trib.rb
参考
详细信息请参考redis官方指南
注意:本文是使用root用户完成的所有操作