Redis Docker开发环境配置指南
Posted on Tue 19 March 2024 in 开发工具
Redis Docker开发环境配置指南
本文档详细介绍如何使用Docker搭建Redis开发环境,包括环境配置、启动方式、维护方法等内容。
目录结构
Redis_Docker/
├── .env # 环境变量配置文件
├── README.md # 项目说明文档
├── config/ # 配置文件目录
│ └── redis.conf # Redis配置文件
├── data/ # 数据存储目录
└── logs/ # 日志文件目录
配置文件说明
1. docker-compose.yml
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 环境变量配置
# Redis 配置环境变量
REDIS_PORT=6379 # Redis端口映射
REDIS_PASSWORD=your_password # Redis访问密码
3. redis.conf 主要配置
# 网络设置
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. 启动服务
# 启动服务
docker-compose up -d
# 查看服务状态
docker-compose ps
# 查看日志
docker-compose logs redis
2. 连接Redis
# 使用容器内的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. 停止服务
# 停止服务
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. 性能监控
# 查看服务器信息
redis-cli -a your_password INFO
# 监控命令执行
redis-cli -a your_password MONITOR
# 查看慢查询日志
redis-cli -a your_password SLOWLOG GET
2. 内存分析
# 查看内存使用情况
redis-cli -a your_password INFO memory
# 查看大键
redis-cli -a your_password --bigkeys
3. 数据备份
# 手动触发RDB备份
redis-cli -a your_password SAVE
# 异步触发RDB备份
redis-cli -a your_password BGSAVE
常见问题处理
1. 连接失败
- 检查密码是否正确
- 确认端口映射是否正确
- 验证Redis服务是否正常运行
2. 内存问题
- 检查maxmemory设置
- 查看内存使用情况
- 考虑调整内存策略
3. 持久化问题
- 检查磁盘空间
- 查看AOF/RDB文件状态
- 确认写入权限
最佳实践
1. 安全建议
- 使用强密码
- 限制可访问的IP
- 定期更新Redis版本
2. 性能建议
- 合理设置内存上限
- 选择适当的持久化策略
- 监控慢查询
3. 运维建议
- 定期备份数据
- 监控系统资源
- 保持日志分析