1. 软件环境
ubuntu 14.04 64位
redis-3.2.4
ruby-1.9.1
下载redis,然后sudo make install
安装ruby sudo apt-get install ruby
sudo gem install redis(缺少这一步创建cluster的时候会报错)
hlbd@hlbd-android:~/javaweb/redis-3.2.4/src$ sudo gem install redis
Fetching: redis-3.3.1.gem (100%)
Successfully installed redis-3.3.1
1 gem installed
Installing ri documentation for redis-3.3.1...
Installing RDoc documentation for redis-3.3.1...
2. 本机用6个端口模拟6个redis
新建目录 clustertest
在此目录下新建6个子目录,分别为 server7000,server7001,server7002,server7003,server7004,server7005
在各自目录下新建data,log,run三个子目录,做为存放数据库,日志,和pid用
拷贝原始redis.conf文件到server7000下
编辑如下内容:
port 7000
daemonize yes
bind 127.0.0.1 192.168.31.33
protected-mode no
pidfile /home/hlbd/javaweb/redis-3.2.4/clustertest/server7000/run/redis_7000.pid
logfile /home/hlbd/javaweb/redis-3.2.4/clustertest/server7000/log/redis.log
cluster-enabled yes
cluster-config-file nodes-7000.conf
cluster-node-timeout 5000
appendonly yes
保存后,复制到server7001,server7002,sever7003,server7004,server7005目录下,并修改响应端口号和目录名
3. 启动6个redis
hlbd@hlbd-android:~/javaweb/redis-3.2.4/clustertest$ redis-server server7000/redis.conf
hlbd@hlbd-android:~/javaweb/redis-3.2.4/clustertest$ redis-server server7001/redis.conf
hlbd@hlbd-android:~/javaweb/redis-3.2.4/clustertest$ redis-server server7002/redis.conf
hlbd@hlbd-android:~/javaweb/redis-3.2.4/clustertest$ redis-server server7003/redis.conf
hlbd@hlbd-android:~/javaweb/redis-3.2.4/clustertest$ redis-server server7004/redis.conf
hlbd@hlbd-android:~/javaweb/redis-3.2.4/clustertest$ redis-server server7005/redis.conf
4.创建cluster
hlbd@hlbd-android:~/javaweb/redis-3.2.4/src$ ./redis-trib.rb create --replicas 1 192.168.31.33:7000 192.168.31.33:7001 192.168.31.33:7002 192.168.31.33:7003 192.168.31.33:7004 192.168.31.33:7005
replicas 1表示每个master创建1个slave
运行后输出如下:
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.31.33:7000
192.168.31.33:7001
192.168.31.33:7002
Adding replica 192.168.31.33:7003 to 192.168.31.33:7000
Adding replica 192.168.31.33:7004 to 192.168.31.33:7001
Adding replica 192.168.31.33:7005 to 192.168.31.33:7002
M: 0d5c9b58f070d020539946e58e5fcbf178bd5366 192.168.31.33:7000
slots:0-5460 (5461 slots) master
M: 28d710be56b7b86274080a108b8a81b6b9957d83 192.168.31.33:7001
slots:5461-10922 (5462 slots) master
M: 82b70caf15bf6ccf9173629e22acc567b3a303a5 192.168.31.33:7002
slots:10923-16383 (5461 slots) master
S: d909d2c8a63c7b36fb6f7fcbcc9fba1f4ddf8f3f 192.168.31.33:7003
replicates 0d5c9b58f070d020539946e58e5fcbf178bd5366
S: 93eb8ae2dafe1293003060f143376d4df16a3a10 192.168.31.33:7004
replicates 28d710be56b7b86274080a108b8a81b6b9957d83
S: 66501964fe1142cbbdfefd065da55a2824353891 192.168.31.33:7005
replicates 82b70caf15bf6ccf9173629e22acc567b3a303a5
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join...
>>> Performing Cluster Check (using node 192.168.31.33:7000)
M: 0d5c9b58f070d020539946e58e5fcbf178bd5366 192.168.31.33:7000
slots:0-5460 (5461 slots) master
1 additional replica(s)
S: 93eb8ae2dafe1293003060f143376d4df16a3a10 127.0.0.1:7004
slots: (0 slots) slave
replicates 28d710be56b7b86274080a108b8a81b6b9957d83
M: 82b70caf15bf6ccf9173629e22acc567b3a303a5 127.0.0.1:7002
slots:10923-16383 (5461 slots) master
1 additional replica(s)
S: 66501964fe1142cbbdfefd065da55a2824353891 127.0.0.1:7005
slots: (0 slots) slave
replicates 82b70caf15bf6ccf9173629e22acc567b3a303a5
M: 28d710be56b7b86274080a108b8a81b6b9957d83 127.0.0.1:7001
slots:5461-10922 (5462 slots) master
1 additional replica(s)
S: d909d2c8a63c7b36fb6f7fcbcc9fba1f4ddf8f3f 127.0.0.1:7003
slots: (0 slots) slave
replicates 0d5c9b58f070d020539946e58e5fcbf178bd5366
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
安装完成,查看进程
hlbd@hlbd-android:~/javaweb/redis-3.2.4/src$ ps -ef | grep redis
hlbd 19015 1980 0 15:38 ? 00:00:01 redis-server 127.0.0.1:7001 [cluster]
hlbd 19029 1980 0 15:38 ? 00:00:01 redis-server 127.0.0.1:7000 [cluster]
hlbd 19034 1980 0 15:38 ? 00:00:01 redis-server 127.0.0.1:7002 [cluster]
hlbd 19038 1980 0 15:39 ? 00:00:01 redis-server 127.0.0.1:7003 [cluster]
hlbd 19042 1980 0 15:39 ? 00:00:01 redis-server 127.0.0.1:7004 [cluster]
hlbd 19046 1980 0 15:39 ? 00:00:01 redis-server 127.0.0.1:7005 [cluster]