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和端口也要同步进行变化。

相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4天前
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
63 28
|
13天前
|
NoSQL Redis 数据库
Docker平台上的Redis镜像运行
这就是如何在Docker平台上运行Redis镜像的全部过程。走进Docker和Redis的世界,探索更多可能!
59 10
|
1月前
|
Docker Python 容器
Docker——阿里云服务器使用Docker部署python项目全程小记
本文记录了我在阿里云服务器上使用Docker部署python项目(flask为例)的全过程,在这里记录和分享一下,希望可以给大家提供一些参考。
147 0
|
1月前
|
弹性计算 运维 Ubuntu
在阿里云ECS云服务器上安装、配置及高效使用Docker与Docker Compose
本文介绍了在阿里云ECS上使用Ubuntu系统安装和配置Docker及Docker Compose的详细步骤。通过这些工具,可以快速部署、弹性扩展和高效管理容器化应用,满足开发和运维需求。内容涵盖Docker的安装、镜像源配置、创建Web程序镜像以及使用Docker Compose部署WordPress等实际操作,并分享了使用体验,展示了阿里云实例的高性能和稳定性。
394 4
|
29天前
|
缓存 监控 NoSQL
Redis--缓存击穿、缓存穿透、缓存雪崩
缓存击穿、缓存穿透和缓存雪崩是Redis使用过程中可能遇到的常见问题。理解这些问题的成因并采取相应的解决措施,可以有效提升系统的稳定性和性能。在实际应用中,应根据具体场景,选择合适的解决方案,并持续监控和优化缓存策略,以应对不断变化的业务需求。
97 29
|
1月前
|
缓存 NoSQL Java
Redis应用—8.相关的缓存框架
本文介绍了Ehcache和Guava Cache两个缓存框架及其使用方法,以及如何自定义缓存。主要内容包括:Ehcache缓存框架、Guava Cache缓存框架、自定义缓存。总结:Ehcache适合用作本地缓存或与Redis结合使用,Guava Cache则提供了更灵活的缓存管理和更高的并发性能。自定义缓存可以根据具体需求选择不同的数据结构和引用类型来实现特定的缓存策略。
116 16
Redis应用—8.相关的缓存框架
|
17天前
|
人工智能 缓存 NoSQL
Redis 与 AI:从缓存到智能搜索的融合之路
Redis 已从传统缓存系统发展为强大的 AI 支持平台,其向量数据库功能和 RedisAI 模块为核心,支持高维向量存储、相似性搜索及模型服务。文章探讨了 Redis 在实时数据缓存、语义搜索与会话持久化中的应用场景,并通过代码案例展示了与 Spring Boot 的集成方式。总结来看,Redis 结合 AI 技术,为现代应用提供高效、灵活的解决方案。
|
1月前
|
存储 缓存 NoSQL
Redis缓存设计与性能优化
Redis缓存设计与性能优化涵盖缓存穿透、击穿、雪崩及热点key重建等问题。针对缓存穿透,可采用缓存空对象或布隆过滤器;缓存击穿通过随机设置过期时间避免集中失效;缓存雪崩需确保高可用性并使用限流熔断组件;热点key重建利用互斥锁防止大量线程同时操作。此外,开发规范强调键值设计、命令使用和客户端配置优化,如避免bigkey、合理使用批量操作和连接池管理。系统内核参数如vm.swappiness、vm.overcommit_memory及文件句柄数的优化也至关重要。慢查询日志帮助监控性能瓶颈。
64 9
|
1月前
|
消息中间件 缓存 NoSQL
缓存与数据库的一致性方案,Redis与Mysql一致性方案,大厂P8的终极方案(图解+秒懂+史上最全)
缓存与数据库的一致性方案,Redis与Mysql一致性方案,大厂P8的终极方案(图解+秒懂+史上最全)