docker-redis/README.md

4.2 KiB
Raw Blame History

Redis 服务配置与管理

本目录包含了GuardDoc服务器使用的Redis服务配置与管理脚本基于Docker容器化部署支持环境变量配置、安全密码管理和便捷的服务控制。

目录结构

redis/
├── .gitignore       # Git忽略文件
├── README.md        # 本文档
├── conf/            # Redis配置文件目录仅包含版本配置文件供参考未实际使用
├── data/            # Redis数据持久化目录
├── docker-compose.yml # Docker Compose配置文件
├── init             # 初始化脚本(环境配置、密码设置等)
├── redis-cli        # Redis客户端连接工具
└── service          # 服务控制脚本(启动、停止、重启等)

初始化

在首次使用前,需要运行初始化脚本来配置环境和安全设置:

cd /path/to/guarddoc-server/redis
./init

初始化过程中,脚本会:

  • 检查必要的命令如docker、openssl是否已安装
  • 创建必要的目录如data、conf
  • 交互式收集用户输入的配置项:
    • Redis密码用于连接Redis服务
    • 加密主密钥用于加密存储Redis密码
    • Redis版本默认8.2
    • Redis端口默认6379
    • 容器名称默认redis
  • 生成加密的密码文件和.envrc环境配置文件
  • 自动配置direnv以加载环境变量

环境变量加载

本项目使用direnv和.envrc文件管理环境变量,确保敏感信息安全存储:

  1. 确保已安装direnv

    # macOS
    brew install direnv
    
    # Linux
    sudo apt-get install direnv  # Debian/Ubuntu
    # 或
    sudo yum install direnv      # CentOS/RHEL
    
  2. 在shell配置文件~/.zshrc~/.bashrc)中添加:

    eval "$(direnv hook zsh)"  # 对于zsh
    # 或
    eval "$(direnv hook bash)" # 对于bash
    
  3. 每次进入redis目录时direnv会自动提示输入主密钥以解密Redis密码

    direnv: error .envrc is blocked. Run `direnv allow` to approve its content
    

    首次进入时需要先运行:

    direnv allow
    

    然后根据提示输入主密钥。

服务控制

使用service脚本控制Redis服务

# 启动服务
./service start

# 停止服务
./service stop

# 重启服务
./service restart

# 查看服务状态
./service status

# 查看帮助信息
./service help

Redis客户端连接

使用redis-cli脚本连接到Redis服务

# 基本连接
./redis-cli

# 执行具体命令
./redis-cli SET mykey "Hello Redis"
./redis-cli GET mykey

# 查看所有键
./redis-cli KEYS *

# 更多redis-cli命令请参考Redis官方文档

注意客户端脚本会自动从环境变量加载Redis连接信息主机、端口、密码无需手动指定。

配置修改

Redis配置文件

Redis的主要配置文件位于conf/redis.conf,可以根据需要修改以下关键配置:

  • 持久化设置RDB/AOF
  • 内存限制
  • 连接数限制
  • 日志级别

修改配置后,需要重启服务使更改生效:

./service restart

容器配置

如果需要修改容器相关配置(如端口映射、资源限制等),可以编辑docker-compose.yml文件,然后重启服务。

安全说明

  1. Redis密码使用AES-256-CBC加密存储在.envrc文件中
  2. 加密主密钥不会保存在任何文件中,需要用户在加载环境变量时手动输入
  3. .envrc文件已添加到.gitignore中,避免敏感信息被提交到版本控制系统
  4. 建议定期更新Redis密码和加密主密钥

故障排查

  1. 服务启动失败检查Docker是否正在运行以及端口是否被占用
  2. 连接失败确认主密钥输入正确Redis服务已启动密码配置正确
  3. 数据问题检查data目录权限确保Docker容器有写入权限
  4. 环境变量加载失败确认direnv已正确安装和配置.envrc文件存在且未被修改

注意事项

  1. 首次使用请务必运行./init脚本完成初始化配置
  2. 请妥善保管加密主密钥丢失后将无法恢复Redis密码
  3. 定期备份data目录以防止数据丢失
  4. 在生产环境中请进一步加强Redis的安全配置如绑定IP、限制访问等