以下是 redis.conf 文件中常用的关键配置项及其解释:

基本配置

  • port: Redis 服务器监听的端口,默认值为 6379。

    port 6379
  • bind: Redis 服务器绑定的IP地址。可以设置为多个IP地址,默认为空,表示绑定所有网络接口。

    bind 127.0.0.1
  • daemonize: 指定是否以守护进程方式运行 Redis。值为 yesno,默认为 no

    daemonize yes

性能优化

  • maxmemory: 设置 Redis 使用的最大内存量。如果超过此值,Redis 会根据指定的淘汰策略删除数据。单位可以是 KB、MB 或 GB。

    maxmemory 512mb
  • maxmemory-policy: 设置内存使用超过 maxmemory 时的淘汰策略。可选值包括 volatile-lruallkeys-lruvolatile-randomallkeys-randomvolatile-ttlnoeviction

    maxmemory-policy allkeys-lru

持久化

  • save: 配置 RDB 快照的保存策略。每行表示在指定时间内有多少次写操作时触发快照保存。

    save 900 1
    save 300 10
    save 60 10000
  • appendonly: 启用 AOF(Append Only File)持久化。值为 yesno

    appendonly yes
  • appendfilename: 设置 AOF 文件的文件名。

    appendfilename "appendonly.aof"
  • appendfsync: 配置 AOF 文件的同步策略。可选值为 alwayseverysecno

    appendfsync everysec

安全

  • requirepass: 设置 Redis 服务器的访问密码。

    requirepass yourpassword
  • rename-command: 重命名或禁用某个命令,以增强安全性。

    rename-command FLUSHDB ""

网络

  • tcp-backlog: 设置 TCP 连接的 backlog 队列长度,影响客户端连接的处理能力。

    tcp-backlog 511
  • timeout: 设置客户端连接超时时间,单位为秒。设置为 0 表示不超时。

    timeout 300

复制

  • slaveof: 设置从服务器连接的主服务器地址和端口。

    slaveof 127.0.0.1 6379
  • masterauth: 如果主服务器设置了密码,从服务器需要通过该配置项提供密码进行认证。

    masterauth yourmasterpassword
  • slave-priority: 设置从服务器的优先级。值越小,优先级越高。当主服务器故障时,Redis 哨兵会选择优先级最高的从服务器作为新的主服务器。如果一个从服务器的 slave-priority 设置为 0,则这个从服务器不会被选为新的主服务器。

    slave-priority 100

集群

  • cluster-enabled: 启用 Redis 集群模式。

    cluster-enabled yes
  • cluster-config-file: 设置集群配置文件的路径。

    cluster-config-file nodes.conf
  • cluster-node-timeout: 设置集群节点间通信的超时时间,单位为毫秒。

    cluster-node-timeout 5000

日志

  • loglevel: 设置日志级别。可选值包括 debugverbosenoticewarning

    loglevel notice
  • logfile: 设置日志文件路径。默认情况下,日志输出到标准输出。

    logfile /var/log/redis/redis.log

客户端

  • maxclients: 设置允许的最大客户端连接数。
    maxclients 10000

杂项

  • databases: 设置数据库的数量。默认值为 16。
    databases 16

示例配置

以下是一个示例 redis.conf 文件,包含一些常见的配置项:

# 基本配置
port 6379
bind 127.0.0.1
daemonize yes

# 性能优化
maxmemory 512mb
maxmemory-policy allkeys-lru

# 持久化
save 900 1
save 300 10
save 60 10000
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec

# 安全
requirepass yourpassword

# 网络
tcp-backlog 511
timeout 300

# 复制
slaveof 127.0.0.1 6379
masterauth yourmasterpassword
slave-priority 100

# 集群
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000

# 日志
loglevel notice
logfile /var/log/redis/redis.log

# 客户端
maxclients 10000

# 杂项
databases 16

通过合理配置 redis.conf,可以优化 Redis 服务器的性能、安全性和高可用性,满足不同应用场景的需求。