Ubuntu下、Redis集群
系统:Ubuntu14.04.1(服务器版)
Redis版本:3.0.7
机器:test2:192.168.56.102:7000(主节点)、192.168.56.102:7001(不一定是192.168.56.102:7000的从节点)
test3:192.168.56.103:7000(主节点)、192.168.56.103:7001(不一定是192.168.56.103:7000的从节点)
test4:192.168.56.104:7000(主节点)、192.168.56.104:7001(不一定是192.168.56.104:7000的从节点)
搭建步骤:
1.在test2机器上创建文件夹,用于存放节点文件:
sudo mkdir cluster-test
2.修改创建文件的权限:
sudo chmod -R 777 /cluster-test/
3.在cluster-test文件夹下创建以端口号命名的子文件夹:
mkdir 7000 7001
4.在7000文件中创建redis.conf文件:
vim redis.conf
5.将以下内容拷贝到redis.conf文件中:
port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
6.将7000目录下的redis.conf文件拷贝到7001目录下,并修改里面的端口号为7001:
cp ./redis.conf /cluster-test/7001/redis.conf
7.将test2上的cluster-test文件通过ssh拷贝到test3和test4上,在test2上执行命令:
scp -r /cluster-test/ test3://home/test3
scp -r /cluster-test/ test4://home/test4
8.分别在test2、test3和test4上下载并安装Redis,然后,编译(见另一文章,注:本人的redis安装目录在根目录下,权限为777):
http://blog.****.net/u012810317/article/details/51064059
9.在test2、test3和test4上分别从redis安装目录下的src文件中将编译好的redis-server拷贝到cluster-test目录下:
cp /redis-3.0.7/src/redis-server /cluster-test/
10.在test2、test3和test4上分别进入7000和7001目录,启动节点:
./redis-server ./redis.conf
11.在test2(也可以选择其他机器)上安装ruby环境:
sudo apt-get update
sudo apt-get install ruby
12.在test2(根据上一步而定)上安装ruby程序和redis的第三方接口:
注意:需要上传该文件( redis-3.0.0.gem )下载地址:http://download.****.net/download/liu976180578/10134135
sudo gem install redis-3.0.0.gem
13.在test2上的redis安装目录的src下输入命令创建集群:
./redis-trib.rb create --replicas 1 192.168.56.102:7000 192.168.56.103:7000 192.168.56.104:7000 192.168.56.103:7001 192.168.56.104:7001 192.168.56.102:7001
14.使用命令查看集群状态:
./redis-trib.rb check 192.168.56.102:7000
15.成功状态如下图:
Redis集群测试:
1.重新分片:
./redis-trib.rb reshard 192.168.56.102:7000
2.集群故障:
./redis-cli -p 7000 debug segfault
3.删除节点:
./redis-trib.rb del-node 192.168.56.103:7000 节点ID
注意:删除主节点时,主节点必须没有哈希槽。
4.添加新节点:
a.添加主节点:
按照前面创建节点的方法,创建一个新节点,端口号为7002,并运行。
添加新节点到集群:
./redis-trib.rb add-node 192.168.56.102:7002 192.168.56.103:7000
为新节点分配哈希槽:
./redis-trib.rb reshard 192.168.56.103:7000
b.添加从节点:
添加前面删除的从节点:
./redis-trib.rb add-node --slave --master-id 主节点ID 192.168.56.104:7001 192.168.56.103:7000
5.其他命令:
./redis-trib.rb check 192.168.56.103:7000(检查集群状态)
./redis-cli -p 7000 cluster nodes | grep master(打印集群主节点信息)
./redis-cli -p 7000 cluster nodes | grep slave(打印集群从节点信息)
备注:第12步,执行sudo gem install redis-3.0.0.gem前 需要上传该文件( redis-3.0.0.gem )
下载地址:http://download.****.net/download/liu976180578/10134135