Docker——阿里云服务器利用docker搭建redis集群

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 本文详细记录了使用Docker搭建Redis集群的过程,包括检查Docker和Docker Compose的安装、创建Redis配置文件、编写`docker-compose.yml`文件、启动Redis节点、创建Redis集群的具体步骤,以及最终的验证方法。文章还提供了在多服务器环境下搭建Redis集群的注意事项,帮助读者全面了解 Redis 集群的部署流程。

本文是博主使用Docker搭建redis集群的记录。


一、是否安装 Docker 和 Docker Compose

使用如下命令验证

docker --version
docker-compose --version


二、创建Redis配置文件

创建一个目录redis-cluster,在目录下创建redis.conf文件

port 6379
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes



三、编写docker-compose.yml

version: 'v1.0'
services:
  redis-node-1:
    image: redis:latest
    container_name: redis-node-1
    command: redis-server /usr/local/etc/redis/redis.conf
    ports:
      - "7001:6379"
    volumes:
      - ./redis.conf:/usr/local/etc/redis/redis.conf
      - ./data/node1:/data
  redis-node-2:
    image: redis:latest
    container_name: redis-node-2
    command: redis-server /usr/local/etc/redis/redis.conf
    ports:
      - "7002:6379"
    volumes:
      - ./redis.conf:/usr/local/etc/redis/redis.conf
      - ./data/node2:/data
  redis-node-3:
    image: redis:latest
    container_name: redis-node-3
    command: redis-server /usr/local/etc/redis/redis.conf
    ports:
      - "7003:6379"
    volumes:
      - ./redis.conf:/usr/local/etc/redis/redis.conf
      - ./data/node3:/data
  redis-node-4:
    image: redis:latest
    container_name: redis-node-4
    command: redis-server /usr/local/etc/redis/redis.conf
    ports:
      - "7004:6379"
    volumes:
      - ./redis.conf:/usr/local/etc/redis/redis.conf
      - ./data/node4:/data
  redis-node-5:
    image: redis:latest
    container_name: redis-node-5
    command: redis-server /usr/local/etc/redis/redis.conf
    ports:
      - "7005:6379"
    volumes:
      - ./redis.conf:/usr/local/etc/redis/redis.conf
      - ./data/node5:/data
  redis-node-6:
    image: redis:latest
    container_name: redis-node-6
    command: redis-server /usr/local/etc/redis/redis.conf
    ports:
      - "7006:6379"
    volumes:
      - ./redis.conf:/usr/local/etc/redis/redis.conf
      - ./data/node6:/data

上面文件定义了6个Redis节点的服务,每个节点映射到主机的不同端口,并将之前创建的 redis.conf 文件挂载到容器内,并且也为每个节点创建了独立的数据目录data。


四、启动所有Redis节点

执行以下命令一键启动所有的redis容器

docker-compose up -d


对应的停止命令

docker-compose down


五、创建 Redis 集群

使用以下命令进入其中一个redis容器

docker exec -it redis-node-1 bash

然后在容器内执行以下命令创建集群:

redis-cli --cluster create 内网ip:7001 内网ip:7002 内网ip:7003 内网ip:7004 内网ip:7005 内网ip:7006 --cluster-replicas 1

因为我们是在一个服务器上,利用不同端口,所以最好使用内网ip,并且7000-7006的安全组端口要打开,可以防止出现以下错误

image.png


--cluster-replicas 1 表示每个主节点有一个从节点。执行该命令后,会提示你确认集群配置,输入 yes 即可完成集群创建,注意一定是yes,搭建成功之后,可以使用以下命令进入redis进行验证

redis-cli -c -h 内网ip -p 7001
set key1 value1
get key1




六、总结

以上是一台服务器通过docker搭建redis集群,如果是多台服务器,那redis.conf的配置文件上bind需要改为公网ip,并且不会使用docker-compose,而是使用docker run命令启动容器,redis-cli后面的ip和端口也要同步进行变化。

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4天前
|
消息中间件 存储 缓存
Redis 服务器全方位介绍:从入门到核心原理
Redis是一款高性能、基于内存的NoSQL数据库,支持String、Hash、List、Set、ZSet等丰富数据结构,广泛用于缓存、分布式锁、排行榜、消息队列等场景。支持持久化(RDB/AOF)、主从复制、集群部署,具备原子操作与高并发能力,是构建高可用系统的核心组件之一。(239字)
64 0
|
3月前
|
关系型数据库 应用服务中间件 nginx
Docker一键安装中间件(RocketMq、Nginx、MySql、Minio、Jenkins、Redis)
本系列脚本提供RocketMQ、Nginx、MySQL、MinIO、Jenkins和Redis的Docker一键安装与配置方案,适用于快速部署微服务基础环境。
|
16天前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
164 5
kde
|
17天前
|
存储 NoSQL Redis
手把手教你用 Docker 部署 Redis
Redis是高性能内存数据库,支持多种数据结构,适用于缓存、消息队列等场景。本文介绍如何通过Docker快速拉取轩辕镜像并部署Redis,涵盖快速启动、持久化存储及docker-compose配置,助力开发者高效搭建稳定服务。
kde
389 6
|
3月前
|
存储 测试技术 数据安全/隐私保护
【Docker项目实战】使用Docker部署dufs文件服务器
【Docker项目实战】使用Docker部署dufs文件服务器
571 17
【Docker项目实战】使用Docker部署dufs文件服务器
|
3月前
|
NoSQL Redis 数据安全/隐私保护
挂载配置文件以Docker启动Redis服务
以上步骤提供了一个高效且实用的方式来使用Docker启动并运行带有自定义配置的Redis服务。这些操作可以适用于开发、测试和生产环境,是一种灵活且可扩展的部署方案。通过挂载配置文件和数据卷,您可以轻松地管理和迁移您的Redis实例。
446 9
|
3月前
|
弹性计算 关系型数据库 Nacos
低配阿里云 ECS 如何 docker 环境部署 NACOS : 单机版模式
NACOS 单机版 Docker 安装指南。使用指定端口和 custom.env 配置文件启动 Nacos 服务,适用于 2.X 版本,包含 gRPC 支持及 MySQL 数据源配置。 -e MODE=standalone \
319 5
|
4月前
|
Ubuntu 安全 数据安全/隐私保护
在Docker容器中部署GitLab服务器的步骤(面向Ubuntu 16.04)
现在,你已经成功地在Docker上部署了GitLab。这就是我们在星际中的壮举,轻松如同土豆一样简单!星际旅行结束,靠岸,打开舱门,迎接全新的代码时代。Prepare to code, astronaut!
408 12
|
6月前
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
298 28
|
6月前
|
NoSQL Redis 数据库
Docker平台上的Redis镜像运行
这就是如何在Docker平台上运行Redis镜像的全部过程。走进Docker和Redis的世界,探索更多可能!
409 10