一、前述
本文将单台节点不同端口模拟集群方式。
二、具体搭建
前提是安装好redis具体可参考http://www.cnblogs.com/LHWorldBlog/p/8463269.html
1、规划
redis集群 3.x版本
物理节点1个
指定3个主节点端口为7000、7001、7002
对应的3个从节点端口为7003、7004、7005
2、创建配置
mkdir cluster-test
cd cluster-test
mkdir 7000 7001 7002 7003 7004 7005
在7000-7005目录中创建redis.conf
redis.conf内容如下
cluster-enabled yes #开启集群模式
port 700x #<对应端口号>
3.进入对应子目录启动服务
启动所有服务,要进入子目录启动服务
# cd 700x
# redis-server redis.conf
也可以用脚本:
#!/bin/bash
for i in `seq 0 5`
do
cd 700$i
redis-server redis.conf &
cd ..
done
4、安装ruby解释器和redis模块
yum install ruby rubygems -y
gem install --local redis-3.3.0.gem
5、创建集群(指定主从)
在安装目录下的src中
./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
自动分配了主从,自动分配了slots,所有槽都有节点处理,集群上线。
其中一个主节点与从节点的对应关系:
三、测试集群
1、客户端连接
redis-cli -p 7000 -c (-c 使用集群模式,允许转向)
2.测试转向
存:
取:
在没有存入数据的节点上并没有数据:
测试数据具体分布如下:
date 7000
msg在7001
234属于7000 7003
abc 7001
a 7002
3、测试主节点挂掉
好7000,7001,7002是主,7003是7000的从,那么这个时候把7000给ctrl+c掉,挂了,7003 一直报找不到主了: