1.新建6个最简redis.conf配置,每个文件配置如下:
port 7000
daemonize yes
dir "opt/soft/redis/data"
logfile "7000.log"
dbfilename "dump-7000.rdb"
cluster-enabled yes
cluster-config-file nodes-7000.conf
cluster-require-full-coverage no
2.启动6个redis
redis-server redis-7000.conf 。。。。。。
3.节点meet握手操作,用7000的端口的节点去meet其余6个节点
redis-cli -h 127.0.0.1 -p 7000 cluster meet 127.0.0.1 7001
redis-cli -h 127.0.0.1 -p 7000 cluster meet 127.0.0.1 7002
redis-cli -h 127.0.0.1 -p 7000 cluster meet 127.0.0.1 7003
以此类推
4.分配槽
redis-cli -p 7000 cluster addslots 0
因为有16384个槽,不可能一个一个去分配,我们写一个脚本进行分配,新建一个脚本
vim addslots.sh
addslots.sh 内容如下
start=$1
end=$2
port=$3
for slot in `seq ${start} ${end}`
do
echo "slot:${slot}"
redis-cli -p ${port} cluster addslots ${slot}
done
6个节点,3个主节点,3个从节点。把16384平均分3份,7000节点分配0~5461,7001节点分配 5462~10922,7002节点分配 10923~16383,执行脚本
sh addslots.sh 0 5462 7000
以此类推....
5.主从分配,7000主节点对应7003从节点,7001主节点对应7004从节点,7002主节点对应7005从节点,查看7000主节点的node id
redis-cli -p 7000 cluster nodes
复制7000的nodes id
redis-cli -p 7003 cluster replicate 7000的nodes id
以此类推
下一篇文章将介绍redis自带的工具redis.trip.rb来构建集群