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