Redis 7.0.2 Docker Compose 部署

1. 创建目录

复制代码
sudo mkdir -p /opt/redis/{conf,data}
cd /opt/redis

目录结构:

复制代码
/opt/redis/
├── docker-compose.yml
├── conf/
│   └── redis.conf
└── data/

2. docker-compose.yml

复制代码
vim docker-compose.yml

services:
  redis:
    image: redis:7.0.2
    container_name: redis702
    restart: unless-stopped

    environment:
      TZ: Asia/Shanghai

    ports:
      - "6379:6379"

    volumes:
      - ./data:/data
      - ./conf/redis.conf:/usr/local/etc/redis/redis.conf:ro

    command:
      - redis-server
      - /usr/local/etc/redis/redis.conf

    healthcheck:
      test:
        [
          "CMD",
          "redis-cli",
          "-a",
          "redis123456",
          "ping"
        ]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 10s

3. conf/redis.conf

复制代码
vim conf/redis.conf

# 网络
bind 0.0.0.0
protected-mode yes
port 6379

# 密码
requirepass redis123456

# RDB 持久化
save 900 1
save 300 10
save 60 10000

# AOF 持久化
appendonly yes
appendfsync everysec

# 数据目录
dir /data

# 内存
maxmemory 1gb
maxmemory-policy allkeys-lru

# 日志
loglevel notice

# 客户端
timeout 0
tcp-keepalive 300

PS: maxmemory 1gb****可根据服务器实际内存调整。

4. 启动 Redis

复制代码
cd /opt/redis
docker compose up -d

查看状态:

复制代码
docker compose ps

查看日志:

复制代码
docker compose logs -f redis

5. 测试 Redis

服务器本机执行:

复制代码
redis-cli -h 127.0.0.1 -p 6379 -a redis123456 ping

正常返回:

复制代码
PONG

PS: 我这边宿主机使用的端口是16379

如果宿主机没有安装 redis-cli,可以直接使用容器:

复制代码
docker exec redis702 redis-cli -a redis123456 ping

6. Redis 连接信息

复制代码
Host:     127.0.0.1
Port:     6379
Password: redis123456

Docker 内其他服务访问:

复制代码
redis:6379

7. 常用命令

复制代码
# 启动
docker compose up -d

# 停止
docker compose down

# 重启
docker compose restart redis

# 查看状态
docker compose ps

# 查看日志
docker compose logs -f redis

# 查看 Redis 信息
docker exec redis702 redis-cli -a redis123456 info

# 测试连接
docker exec redis702 redis-cli -a redis123456 ping

8. 删除 Redis 数据

停止容器:

复制代码
docker compose down

删除持久化数据:

复制代码
rm -rf ./data/*

⚠️ 此操作会永久删除 Redis 持久化数据,请确认后执行。

9. Docker 网络

如果 Redis 与业务服务都通过 Docker Compose 部署,推荐使用 Docker 网络:

复制代码
networks:
  app-network:
    driver: bridge

业务服务直接通过:

复制代码
redis:6379

访问 Redis,无需通过宿主机 6379 端口。

生产环境如果 Redis 仅供内部服务使用,建议不要将 6379 暴露到公网。

相关推荐
Song_RsHt9 小时前
Redis 与微服务,什么场景下无可替代
java·redis·后端·学习·微服务
姜鱼问生11 小时前
网页一片白?Docker 跑 Nginx 读不到文件,403 Forbidden 排查实录
nginx·docker·容器
GottdesKrieges11 小时前
Redis哨兵模式新建用户和修改口令
数据库·redis
ms72wx12 小时前
Docker 命令学习笔记:从入门到进阶的实战指南
笔记·学习·docker
java_logo13 小时前
Docker 部署 Excalidraw:轻松搭建手绘风格白板
运维·docker·容器·excalidraw·白板·轩辕镜像
爱好曙光14 小时前
Redis Cluster 槽迁移:MOVED 重定向与拓扑刷新实战
redis·cluster·性能调优·moved·槽迁移
海的透彻15 小时前
如何让docker容器启动时用自定义的用户
java·docker·dubbo
萨小耶15 小时前
AI 面试答题链路源码分析:Redis 幂等、题目锁与状态机如何配合
人工智能·redis·面试
ZealSinger15 小时前
Boot4升后session_redis属性怎么改名
redis·springsession·boot4·升级踩坑
程序员清风16 小时前
LibreChat 实战:用 Docker 搭建可扩展的多模型对话平台
运维·docker·容器