for port in $(seq 7001 7006); \
do \
mkdir -p /mydata/redis/node-${port}/conf
touch /mydata/redis/node-${port}/conf/redis.conf
cat <<EOF >/mydata/redis/node-${port}/conf/redis.conf
port ${port}
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 192.168.195.129
cluster-announce-port ${port}
cluster-announce-bus-port 1${port}
appendonly yes
EOF
docker run -p ${port}:${port} -p 1${port}:1${port} --name redis-${port} -v /mydata/redis/node-${port}/data:/data -v /mydata/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf -d redis:5.0.7 redis-server /etc/redis/redis.conf;
done
主从配置
docker exec -it redis-7001 bash
redis-cli --cluster create 192.168.195.129:7001 192.168.195.129:7002 192.168.195.129:7003 192.168.195.129:7004 192.168.195.129:7005 192.168.195.129:7006 --cluster-replicas 1
集群登录
docker exec -it redis-7001 bash
redis-cli -c -h localhost -p 7001
解释一下: -c 代表集群登录
redis cluster 是槽式存储,就是把三台redis平均分一下, 每个槽里面存在不同数据。
可以测试用
cluster nodes
cluster info
查看信息用上面两个命令
集群 就搭建完成。