Skip to content

部署 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     # 查看慢查询