欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > docker搭建redis集群

docker搭建redis集群

2025/2/22 1:14:31 来源:https://blog.csdn.net/u013919153/article/details/144566027  浏览:    关键词:docker搭建redis集群

背景

redis作为缓存,生产中都是使用集群部署,故开发的时候自己搞了个乞丐版集群。

Docker version 25.0.4
Docker Compose version v2.24.7
redis 7.0

目录结构

project-directory/
├── docker-compose.yml
├── config/
│ ├── redis-node-1.conf
│ ├── redis-node-2.conf
│ └── redis-node-3.conf
└── data/
├── redis-node-1/
├── redis-node-2/
└── redis-node-3/

准备redis配置文件

mkdir -p /data/redis
cd /data/redis

vi config/redis-node-1.confport 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
bind 0.0.0.0
protected-mode no
#requirepass yourpassword
vi config/redis-node-2.confport 7001
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
bind 0.0.0.0
protected-mode no
#requirepass yourpassword
vi config/redis-node-3.confport 7002
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
bind 0.0.0.0
protected-mode no
#requirepass yourpassword

准备 docker-compose.yml 配置文件

version: "3.9"
services:redis-node-1:image: redis:7.0container_name: redis-node-1command: ["redis-server", "/usr/local/etc/redis/redis.conf", "--cluster-enabled", "yes", "--cluster-config-file", "nodes.conf", "--cluster-node-timeout", "5000", "--appendonly", "yes"]ports:- "7000:7000"volumes:- ./data/redis-node-1:/data- ./config/redis-node-1.conf:/usr/local/etc/redis/redis.confnetworks:- redis-cluster-networkredis-node-2:image: redis:7.0container_name: redis-node-2command: ["redis-server", "/usr/local/etc/redis/redis.conf", "--cluster-enabled", "yes", "--cluster-config-file", "nodes.conf", "--cluster-node-timeout", "5000", "--appendonly", "yes"]ports:- "7001:7001"volumes:- ./data/redis-node-2:/data- ./config/redis-node-2.conf:/usr/local/etc/redis/redis.confnetworks:- redis-cluster-networkredis-node-3:image: redis:7.0container_name: redis-node-3command: ["redis-server", "/usr/local/etc/redis/redis.conf", "--cluster-enabled", "yes", "--cluster-config-file", "nodes.conf", "--cluster-node-timeout", "5000", "--appendonly", "yes"]ports:- "7002:7002"volumes:- ./data/redis-node-3:/data- ./config/redis-node-3.conf:/usr/local/etc/redis/redis.confnetworks:- redis-cluster-networknetworks:redis-cluster-network:driver: bridge

拉取镜像并启动redis

docker-compose up -d

查看redis容器

docker ps | grep redis
在这里插入图片描述

查看每个容器的IP地址

docker inspect redis-node-1 | grep IPAddress
在这里插入图片描述
同理:将其他容器的IP一一查出。

创建集群

docker exec -it redis-node-1 redis-cli --cluster create \ 172.19.0.3:7000 172.19.0.2:7001 172.19.0.4:7002 \ --cluster-replicas 0

这里的IP就是上一步查出的,要注意对应容器IP和端口要写对,要和docker-compose.yml配置的内容对上。

这里没有从节点,如果你想添加从节点,语法如下:
docker exec -it redis-node-1 redis-cli --cluster create
<主节点IP>:7000 <主节点IP>:7001 <主节点IP>:7002
<从节点IP>:7003 <从节点IP>:7004 <从节点IP>:7005
–cluster-replicas 1

测试redis

进入容器并登录redis
docker exec -it redis-node-1 redis-cli -c -p 7000

查看集群信息
cluster nodes
cluster info
在这里插入图片描述

关闭集群

docker-compose stop

开启集群

docker-compose start

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词