当前位置:网站首页>Docker部署一个Redis集群

Docker部署一个Redis集群

2022-06-10 13:36:00 java_prinln

Docker 部署一个Redis集群

分片 + 高可用 + 负载均衡

在这里插入图片描述

创建网卡

docker network create redis --subnet 172.38.0.0/16

通过脚本创建六个redis配置

for port in $(seq 1 6); \ 
	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 6379 bind 0.0.0.0 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 cluster-announce-ip 172.38.0.1${port} cluster-announce-port 6379 cluster-announce-bus-port 16379 appendonly yes EOF 
done

docker run -p 637${port}:6379 -p 1637${port}:16379 --name redis-${port} \ 
-v /mydata/redis/node-${port}/data:/data \ 
-v /mydata/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf \ 
-d --net redis --ip 172.38.0.1${port} redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf; \


# 启动6个容器 
docker run -p 6371:6379 -p 16371:16379 --name redis-1 \ 
-v /mydata/redis/node-1/data:/data \ 
-v /mydata/redis/node-1/conf/redis.conf:/etc/redis/redis.conf \ 
-d --net redis --ip 172.38.0.11 redis:5.0.9-alpine3.11 redis-server
/etc/redis/redis.conf

docker run -p 6376:6379 -p 16376:16379 --name redis-6 \ 
-v /mydata/redis/node-6/data:/data \ 
-v /mydata/redis/node-6/conf/redis.conf:/etc/redis/redis.conf \ 
-d --net redis --ip 172.38.0.16 redis:5.0.9-alpine3.11 redis-server
 /etc/redis/redis.conf

进入一个redis,注意这里是 sh命令

docker exec -it redis-1 /bin/sh

创建集群

redis-cli --cluster create 172.38.0.11:6379 
172.38.0.12:6379 172.38.0.13:6379 172.38.0.14:6379 172.38.0.15:6379 172.38.0.16:6379 -- 
cluster-replicas 1

连接集群

redis-cli -c

查看集群信息

cluster info

查看节点

cluster nodes 

set a b
停止到存值的容器
然后再次get a,发现依旧可以获取值
查看节点,发现高可用完全没问题

原网站

版权声明
本文为[java_prinln]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_44681349/article/details/125212990