Redis 的配置文件为 redis.conf,用于控制服务器行为,如端口、持久化、内存管理等。默认配置文件通常位于安装目录或 /etc/redis/redis.conf(Linux)。以下是配置的核心内容和操作步骤。


1. 查找配置文件

  • Linux:通常在 /etc/redis/redis.conf 或 Redis 安装目录下的 redis.conf
  • MacOS(Homebrew):运行 brew info redis 查看路径,通常为 /usr/local/etc/redis.conf
  • Windows(Docker/WSL):配置文件需手动指定或映射。
  • 源码安装:在源码目录中找到 redis.conf.

查看命令

redis-server --version  # 检查版本
find / -name redis.conf  # 查找配置文件(Linux)

2. 编辑配置文件

使用文本编辑器(如 nanovim)修改 redis.conf

sudo nano /etc/redis/redis.conf

提示:编辑前备份文件:

sudo cp /etc/redis/redis.conf /etc/redis/redis.conf.bak

3. 常用配置项

以下是 redis.conf 中常见且重要的配置项及其说明:

3.1 基本设置

  • 绑定地址(默认只允许本地连接):
  bind 127.0.0.1
  • 修改为 0.0.0.0 允许远程连接(注意安全)。
  • 端口
  port 6379
  • 可更改为其他端口,如 6380.
  • 守护进程运行
  daemonize yes
  • 启用后台运行(Linux 适用)。

3.2 安全

  • 密码
  requirepass yourpassword
  • 设置访问密码,连接时需用 AUTH yourpassword.
  • 保护模式
  protected-mode yes
  • 防止未经授权的远程访问。

3.3 持久化

  • RDB 快照
  save 900 1
  save 300 10
  save 60 10000
  • 表示 900 秒内 1 次变更、300 秒内 10 次变更或 60 秒内 10000 次变更时触发快照。
  • 文件名:
    conf dbfilename dump.rdb
  • AOF(追加文件)
  appendonly no
  appendfsync everysec
  • appendonly yes 启用 AOF。
  • appendfsync 可选值:
    • always:每次写入都同步(最安全,性能低)。
    • everysec:每秒同步(平衡性能和安全)。
    • no:系统决定(最快,可能丢失数据)。

3.4 内存管理

  • 最大内存
  maxmemory 2gb
  • 限制 Redis 使用内存(如 2gb500mb)。
  • 内存淘汰策略
  maxmemory-policy volatile-lru
  • 常见策略:
    • noeviction:不淘汰,内存满时报错。
    • allkeys-lru:对所有键使用 LRU(最近最少使用)淘汰。
    • volatile-lru:仅对设置过期时间的键使用 LRU。

3.5 日志

  • 日志文件
  logfile /var/log/redis/redis.log
  • 指定日志路径。
  • 日志级别
  loglevel notice
  • 可选值:debugverbosenoticewarning.

3.6 其他

  • 数据目录
  dir /var/lib/redis/
  • 存储 RDB 和 AOF 文件。
  • 客户端连接限制
  maxclients 10000
  • 最大客户端连接数。

4. 应用配置

  1. 保存修改
  • 编辑完成后保存文件(如 Ctrl+OCtrl+X 退出 nano)。
  1. 重启 Redis
   sudo systemctl restart redis  # Linux
   brew services restart redis  # MacOS

或手动启动:

   redis-server /path/to/redis.conf
  1. 验证配置
   redis-cli CONFIG GET <parameter>

示例:

   redis-cli CONFIG GET requirepass
   redis-cli CONFIG GET maxmemory

5. 动态修改配置

Redis 支持运行时修改部分配置,无需重启:

redis-cli CONFIG SET <parameter> <value>

示例:

redis-cli CONFIG SET requirepass "mypassword"
redis-cli CONFIG SET maxmemory 2gb

保存动态配置到文件

redis-cli CONFIG REWRITE

6. 常见问题

  • 连接拒绝
  • 检查 bind 是否为 127.0.0.1(改为 0.0.0.0 允许远程访问)。
  • 确保防火墙开放端口(如 ufw allow 6379)。
  • 权限问题
  • 确保 dir 目录有写权限:
    bash sudo chown redis:redis /var/lib/redis sudo chmod 755 /var/lib/redis
  • 性能瓶颈
  • 调整 maxmemorymaxmemory-policy.
  • 启用 AOF 时选择 everysec 平衡性能。

7. 示例配置

以下是一个简单的 redis.conf 示例,适合小型应用:

port 6379
bind 127.0.0.1
requirepass mysecurepassword
maxmemory 512mb
maxmemory-policy allkeys-lru
save 900 1
save 300 10
appendonly yes
appendfsync everysec
dir /var/lib/redis/
logfile /var/log/redis/redis.log

8. 参考资料


如果需要更详细的某项配置(如持久化、集群)或遇到具体问题,请告诉我!