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 暴露到公网。

相关推荐
樱花落木兰33 分钟前
分布式登录实战:Session 会话共享改造,Redis 存储用户登录状态
java·javascript·数据库·redis·分布式·缓存
ShineWinsu1 小时前
对于Redis:Steam、Geospatial、Hyperloglog、Bitmap、Bitfield类型的解析
数据库·c++·redis·分布式·缓存·面试·zset
更深兼春远2 小时前
第2篇:Dify 部署保姆级教程:用 Docker跑起来
docker·容器·dify
海绵宝宝转agent3 小时前
基于Redis ZSet+AOP+注解实现限流注解算法
数据库·redis·算法
imDwAaY4 小时前
Redis 也能做消息队列?从 Stream 的存储讲到消费确认
数据库·redis·缓存
小白的码BUG之路5 小时前
Docker -- No space left on device
运维·docker·容器
imDwAaY6 小时前
Redis 哈希表如何边扩容边服务?讲透渐进式 Rehash
redis·哈希算法·散列表
程序员老陆7 小时前
Docker 命令全景指南:从镜像构建到生产运维
运维·docker·容器
仍然.7 小时前
Redis---主从复制
java·数据库·redis
Flynt17 小时前
Redis Cluster主节点挂了,为什么"高可用"还全员掉线?我把三次kill的记录翻出来了
数据库·redis·分布式