Redis安装

Redis安装

概述

本文档涵盖 Redis 单机版的 Docker 部署方法,支持密码认证和数据持久化,适用于开发测试或轻量级生产场景。

核心能力

  • 密码认证保护
  • 数据持久化(RDB + AOF)
  • 资源限制管理
  • 时区配置

部署

1. 创建数据目录

mkdir -p ./redis/data

2. 创建 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:/data

3. 参数说明

参数 说明
--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

数据持久化不生效

  1. 确认 ./redis/data 目录存在
  2. Redis 默认启用 RDB 持久化,AOF 需在配置文件中开启:
appendonly yes
appendfilename "appendonly.aof"

连接被拒绝

  1. 检查端口是否被占用:
netstat -tlnp | grep 6379
  1. 确认防火墙已放行 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

参考链接