redis原生集群基本搭建

337 阅读1分钟

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来构建集群