Redis安装
概述
本文档涵盖 Redis 单机版的 Docker 部署方法,支持密码认证和数据持久化,适用于开发测试或轻量级生产场景。
核心能力:
- 密码认证保护
- 数据持久化(RDB + AOF)
- 资源限制管理
- 时区配置
部署
1. 创建数据目录
mkdir -p ./redis/data2. 创建 Docker Compose 编排文件
docker-compose.yaml:
services:
redis:
image: redis:latest
container_name: redis
restart: always
environment:
- TZ=Asia/Shanghai
command: ["redis-server", "--requirepass", "123456"]
ports:
- "6379:6379"
deploy:
resources:
limits:
cpus: "0.5"
memory: "512M"
volumes:
- ./redis/data:/data3. 参数说明
| 参数 | 说明 |
|---|---|
--requirepass 123456 |
设置 Redis 访问密码 |
./redis/data:/data |
数据持久化目录(RDB/AOF 文件存放位置) |
cpus: "0.5" |
限制容器最多使用 0.5 个 CPU 核心 |
memory: "512M" |
限制容器最大内存使用 512MB |
4. 使用自定义配置文件(推荐生产环境)
services:
redis:
image: redis:latest
container_name: redis
restart: always
environment:
- TZ=Asia/Shanghai
command: redis-server /usr/local/etc/redis/redis.conf
ports:
- "6379:6379"
volumes:
- ./redis/data:/data
- ./redis/redis.conf:/usr/local/etc/redis/redis.conf
deploy:
resources:
limits:
cpus: "0.5"
memory: "512M"启动
docker compose up -d查看启动日志:
docker logs redis -f --tail=50验证
# 本地连接测试
docker exec -it redis redis-cli -a 123456 ping
# 期望输出:PONG
# 外部连接测试(需安装 redis-cli 工具)
redis-cli -h 127.0.0.1 -p 6379 -a 123456 ping
# 期望输出:PONG常用管理命令
| 操作 | 命令 |
|---|---|
| 启动 Redis | docker compose up -d |
| 停止 Redis | docker compose stop |
| 重启 Redis | docker compose restart |
| 查看状态 | docker compose ps |
| 查看日志 | docker logs redis -f --tail=100 |
| 进入容器 | docker exec -it redis /bin/bash |
| 连接 Redis(容器内) | docker exec -it redis redis-cli -a 123456 |
常见问题与注意事项
密码配置不生效
确认 command 参数格式正确:
command: ["redis-server", "--requirepass", "123456"]或在配置文件中设置 requirepass 123456。
数据持久化不生效
- 确认
./redis/data目录存在 - Redis 默认启用 RDB 持久化,AOF 需在配置文件中开启:
appendonly yes
appendfilename "appendonly.aof"连接被拒绝
- 检查端口是否被占用:
netstat -tlnp | grep 6379- 确认防火墙已放行 6379 端口:
firewall-cmd --add-port=6379/tcp --permanent
firewall-cmd --reload内存不足
查看容器内存使用情况:
docker stats redis调整 memory 限制:
deploy:
resources:
limits:
memory: "1G"修改密码
修改 docker-compose.yaml 中的 --requirepass 值,然后重启容器:
docker compose down && docker compose up -d或进入容器动态修改(重启失效):
docker exec -it redis redis-cli -a 123456
127.0.0.1:6379> CONFIG SET requirepass newpassword
127.0.0.1:6379> AUTH newpassword
127.0.0.1:6379> CONFIG REWRITE