命令记录
redis配置
port 7000
dir /usr/local/redisdata
daemonize yes
logfile 7000.log
dbfilename dump-7000.rdb
cluster-enabled yes
cluster-node-timeout 15000
cluster-config-file nodes-7000.conf
cluster-require-full-coverage no 表示当负责一个插槽的主库下线且没有相应的从库进行故障恢复时,集群仍然可用,下面论证该情况。
启动六个redis,三主三从
redis-server redis7000.conf
redis-server redis7001.conf
redis节点相互通信命令
- 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,5
redis分配槽
redis-cli -h 127.0.0.1 -p 7000 cluster addslots {0…5461}
edis-cli -h 127.0.0.1 -p 7001 cluster addslots {5462…10922}
edis-cli -h 127.0.0.1 -p 7002 cluster addslots {10923…16383}
设置主从
#cluster replicate node-id
redis-cli -h 127.0.0.1 -p 7003 cluster replicate ${node-id-7000}
redis-cli -h 127.0.0.1 -p 7004 cluster replicate ${node-id-7001}
redis-cli -h 127.0.0.1 -p 7005 cluster replicate ${node-id-7002}
查看分布信息
redis-cli -p 7000 cluster info #集群信息
redis-cli -p 7000 cluster nodes #集群节点信息
redis-cli -p 7000 cluster slots #具体分配槽位
redis-cli -c -p 7000 #登录
分配槽位的脚本
./xxx.sh 0 5461 7000执行方法
#!/bin/bash
start=$1
end=$2
port=$3
for slot in `seq ${start} ${end}`
do
echo "${port}:${slot}"
redis-cli -h 127.0.0.1 -p ${port} cluster addslots ${slot}
done