Redis Docker开发环境配置指南#
本文档详细介绍如何使用Docker搭建Redis开发环境,包括环境配置、启动方式、维护方法等内容。
目录结构#
1
2
3
4
5
6
7
| Redis_Docker/
├── .env # 环境变量配置文件
├── README.md # 项目说明文档
├── config/ # 配置文件目录
│ └── redis.conf # Redis配置文件
├── data/ # 数据存储目录
└── logs/ # 日志文件目录
|
配置文件说明#
1. docker-compose.yml#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| version: '3.8'
services:
redis:
container_name: redis-server
image: redis:7.2
ports:
- "${REDIS_PORT}:6379"
volumes:
- ./data:/data
- ./logs:/var/log/redis
- ./config/redis.conf:/usr/local/etc/redis/redis.conf
command: redis-server /usr/local/etc/redis/redis.conf
environment:
- TZ=Asia/Shanghai
networks:
- redis-network
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
start_period: 5s
networks:
redis-network:
driver: bridge
|
2. .env 环境变量配置#
1
2
3
| # Redis 配置环境变量
REDIS_PORT=6379 # Redis端口映射
REDIS_PASSWORD=your_password # Redis访问密码
|
3. redis.conf 主要配置#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| # 网络设置
bind 0.0.0.0
port 6379
protected-mode yes
tcp-keepalive 300
# 基本设置
databases 16
loglevel notice
logfile "/var/log/redis/redis.log"
# 内存设置
maxmemory 256mb
maxmemory-policy allkeys-lru
maxmemory-samples 5
# 持久化设置
save 900 1 # 900秒内至少1个键被修改
save 300 10 # 300秒内至少10个键被修改
save 60 10000 # 60秒内至少10000个键被修改
# AOF设置
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
|
使用说明#
1. 启动服务#
1
2
3
4
5
6
7
8
| # 启动服务
docker-compose up -d
# 查看服务状态
docker-compose ps
# 查看日志
docker-compose logs redis
|
2. 连接Redis#
1
2
3
4
5
6
7
8
| # 使用容器内的redis-cli
docker-compose exec redis redis-cli -a your_password
# 使用主机的redis-cli(如果已安装)
redis-cli -h localhost -p 6379 -a your_password
# 测试连接
redis-cli -h localhost -p 6379 -a your_password ping
|
3. 停止服务#
1
2
| # 停止服务
docker-compose down
|
数据持久化#
Redis配置了双重持久化机制:
1. RDB持久化#
- 文件位置:data/dump.rdb
- 自动保存策略:
- 900秒内至少1个键被修改
- 300秒内至少10个键被修改
- 60秒内至少10000个键被修改
2. AOF持久化#
- 文件位置:data/appendonly.aof
- 同步策略:everysec(每秒同步)
- 重写策略:auto-aof-rewrite-percentage 100
性能优化#
1. 内存配置#
- maxmemory:设置为256MB
- maxmemory-policy:使用allkeys-lru策略
- maxmemory-samples:设置为5
2. 网络优化#
- tcp-keepalive:300秒
- tcp-backlog:511
3. 持久化优化#
- appendfsync:everysec
- no-appendfsync-on-rewrite:no
安全配置#
1. 网络安全#
- protected-mode:启用
- bind:0.0.0.0(允许所有IP访问)
- requirepass:设置访问密码
2. 客户端限制#
- maxclients:10000
- timeout:0(不自动断开空闲连接)
监控和维护#
1. 性能监控#
1
2
3
4
5
6
7
8
| # 查看服务器信息
redis-cli -a your_password INFO
# 监控命令执行
redis-cli -a your_password MONITOR
# 查看慢查询日志
redis-cli -a your_password SLOWLOG GET
|
2. 内存分析#
1
2
3
4
5
| # 查看内存使用情况
redis-cli -a your_password INFO memory
# 查看大键
redis-cli -a your_password --bigkeys
|
3. 数据备份#
1
2
3
4
5
| # 手动触发RDB备份
redis-cli -a your_password SAVE
# 异步触发RDB备份
redis-cli -a your_password BGSAVE
|
常见问题处理#
1. 连接失败#
- 检查密码是否正确
- 确认端口映射是否正确
- 验证Redis服务是否正常运行
2. 内存问题#
- 检查maxmemory设置
- 查看内存使用情况
- 考虑调整内存策略
3. 持久化问题#
- 检查磁盘空间
- 查看AOF/RDB文件状态
- 确认写入权限
最佳实践#
1. 安全建议#
2. 性能建议#
3. 运维建议#