Docker Compose 缓存Redis主从节点的搭建 分布式搭建

介绍

单机模式下Redis并发能力有限使用主从集群模式可以很好的解决性能问题,主节点负责处理写操作(如 SET、DEL、INCR 等命令),而 从节点 主要负责读取操作(如 GET、HGET、HGETALL 等命令)。

主节点负责写入
从节点负责读取

通过将读操作分担给从节点,减轻了主节点的负担,提高读取请求的处理能力。

读写分离、负载均衡、数据冗余、高可用性

DockerCompose

yaml 复制代码
version: '3'

services:
  redis1:
    image: redis:7
    container_name: redis1
    ports:
      - "7001:6379"
    volumes:
      - ./redis1.conf:/usr/local/etc/redis/redis.conf
      - redis1-data:/data
    command: redis-server /usr/local/etc/redis/redis.conf
    networks:
      - redis-cluster

  redis2:
    image: redis:7
    container_name: redis2
    ports:
      - "7002:6379"
    volumes:
      - ./redis2.conf:/usr/local/etc/redis/redis.conf
      - redis2-data:/data
    command: redis-server /usr/local/etc/redis/redis.conf
    networks:
      - redis-cluster

  redis3:
    image: redis:7
    container_name: redis3
    ports:
      - "7003:6379"
    volumes:
      - ./redis3.conf:/usr/local/etc/redis/redis.conf
      - redis3-data:/data
    command: redis-server /usr/local/etc/redis/redis.conf
    networks:
      - redis-cluster

networks:
  redis-cluster:
    driver: bridge

volumes:
  redis1-data:
  redis2-data:
  redis3-data:

主节点配置

powershell 复制代码
requirepass yourpassword #本机密码
timeout 65 
maxclients 10000
databases 16 #数据库
maxmemory 1048576000

从节点配置

powershell 复制代码
replicaof 103.116.247.215 7001 #主节点
masterauth yourpassword #主节点密码
requirepass yourpassword #本机密码
timeout 65
maxclients 10000
databases 16
maxmemory 1048576000

创建并启动

powershell 复制代码
 docker-compose up -d

验证是否集群成功

powershell 复制代码
docker exec -it redis1 bash  #进入容器
redis-cli -a yourpassword #连接Redis
info replication #查看节点信息

输出信息 role:master为主节点 connected_slaves:2 两个从节点

powershell 复制代码
# Replication
role:master
connected_slaves:2
slave0:ip=103.116.247.215,port=6379,state=online,offset=3890,lag=1
slave1:ip=103.116.247.215,port=6379,state=online,offset=3890,lag=1
master_failover_state:no-failover
master_replid:dcc792d6c3f54a748c3b14bf43fc5b77e89bd7f9
master_replid2:737e4edbde43a4dc544d2ac7a81582b23af4e3a7
master_repl_offset:3890
second_repl_offset:239
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:239
repl_backlog_histlen:3652
相关推荐
杨了个杨898236 分钟前
Keepalived + Nginx + HAProxy 高可用架构部署实战案例
java·nginx·架构
giaz14n9X2 小时前
Redis 分布式锁进阶第六十三篇
分布式
鹤落晴春2 小时前
【K8s】Pod调度、configMaps
云原生·容器·kubernetes
马士兵教育3 小时前
Java还有前景吗?Java+AI大模型学习路线及项目?
java·人工智能·python·学习·机器学习
snow@li3 小时前
Java:理解 Gradle / 后端项目的管家 / 打包SpringBoot 应用 / 完成编译、下载依赖、运行测试、打包 JAR/WAR / 速查表
java
云烟成雨TD3 小时前
Spring AI 1.x 系列【57】动态工具发现:Tool Search Tool
java·人工智能·spring
zfoo-framework4 小时前
[修改代码使用]codex官方app中使用中转(不需要cc-switch) 1.config.toml 2.sk方式登录
java
Albert Edison4 小时前
【Redis】Centos7.9 安装 Redis 5 教程
数据库·redis·缓存
极客先躯4 小时前
高级java每日一道面试题-2026年02月02日-实战篇[Docker]-如何实现容器的持久化存储?
docker·容器·面试宝典·持久化·存储·韵味·java高级面试题
逍遥德4 小时前
MQTT教程详解-05.SpringBoot集成mqtt client 性能分析
java·spring boot·spring·mt