Appearance
部署 Redis
快速启动
bash
# 最简启动(无密码)
docker run -d \
--name redis \
--restart unless-stopped \
-p 6379:6379 \
redis:alpine
# 带密码
docker run -d \
--name redis \
--restart unless-stopped \
-p 6379:6379 \
-v redis-data:/data \
redis:alpine \
redis-server --requirepass yourpassword --appendonly yes验证连接
bash
# 进入容器测试
docker exec -it redis redis-cli
# 无密码
127.0.0.1:6379> PING
PONG
127.0.0.1:6379> SET key "hello"
127.0.0.1:6379> GET key
"hello"
# 有密码
127.0.0.1:6379> AUTH yourpassword
OK使用自定义配置文件
bash
cat > ./redis.conf <<'EOF'
# 绑定地址
bind 0.0.0.0
# 密码
requirepass yourpassword
# 持久化(AOF)
appendonly yes
appendfsync everysec
# 持久化(RDB)
save 900 1
save 300 10
save 60 10000
# 最大内存
maxmemory 256mb
maxmemory-policy allkeys-lru
# 日志级别
loglevel notice
# 慢查询
slowlog-log-slower-than 10000
slowlog-max-len 128
# 时区
timezone "Asia/Shanghai"
EOF
docker run -d \
--name redis \
--restart unless-stopped \
-p 6379:6379 \
-v redis-data:/data \
-v $(pwd)/redis.conf:/etc/redis/redis.conf:ro \
redis:alpine \
redis-server /etc/redis/redis.conf数据持久化
Redis 支持两种持久化方式:
bash
# RDB(快照,默认)
# 定期将内存中的数据快照写入磁盘
# AOF(追加写入日志,更安全)
# 记录每个写操作,重启后重放恢复数据
# 推荐:同时开启两种
docker run -d \
--name redis \
-v redis-data:/data \
redis:alpine \
redis-server \
--save 60 1 \
--appendonly yes \
--requirepass yourpassword使用 Docker Compose
yaml
services:
redis:
image: redis:7-alpine
restart: unless-stopped
command: redis-server /etc/redis/redis.conf
ports:
- "6379:6379"
volumes:
- redis-data:/data
- ./redis.conf:/etc/redis/redis.conf:ro
healthcheck:
test: ["CMD", "redis-cli", "-a", "yourpassword", "ping"]
interval: 10s
timeout: 5s
retries: 3
volumes:
redis-data:备份与恢复
bash
# 触发 RDB 快照保存
docker exec redis redis-cli -a password SAVE
# 或后台保存
docker exec redis redis-cli -a password BGSAVE
# 复制 RDB 文件
docker cp redis:/data/dump.rdb ./redis-backup.rdb
# 恢复:停止容器,替换 dump.rdb 文件,重启
docker stop redis
# 将备份文件复制回去
docker cp ./redis-backup.rdb redis:/data/dump.rdb
docker start redis常用 Redis 命令
bash
# 连接(带密码)
docker exec -it redis redis-cli -a yourpassword
# 常用操作
redis-cli> PING # 测试连接
redis-cli> INFO # 服务器信息
redis-cli> INFO memory # 内存信息
redis-cli> DBSIZE # key 数量
redis-cli> FLUSHDB # 清空当前库(慎用)
redis-cli> MONITOR # 监控实时命令
redis-cli> SLOWLOG GET 10 # 查看慢查询