DukeDuke
主页
文档转换
关于我们
主页
文档转换
关于我们
  • Redis

    • Redis简介
    • Redis(单机)安装
    • Redis配置
    • Redis数据结构
    • RDB、AOF 和混合持久化机制
    • Redis内存管理
    • Redis缓存一致性
    • Redis缓存穿透
    • Redis缓存击穿
    • Redis缓存雪崩
    • Redis Lua脚本
    • Redis主从复制
    • Redis哨兵模式
    • Redis集群
    • Redis数据分片
    • Redis CPU使用率过高
    • Redis面试题
  • MySQL

    • MySQL简介
    • MySQL安装
    • MySQL配置
    • MYSQL日常维护
    • MYSQL优化-慢查询
    • MYSQL优化-索引
    • MYSQL数据库设计规范

Redis 8.0 配置文件详解

1. 网络配置

# redis.conf

bind 127.0.0.1  # 绑定的IP地址,默认只允许本地访问
protected-mode yes  # 是否开启保护模式,开启后只允许bind指定的IP访问
port 6379  # Redis服务端口
tcp-backlog 511  # TCP连接队列长度
timeout 0  # 客户端空闲超时时间,0表示不关闭
tcp-keepalive 300  # TCP keepalive时间

2. 通用运行参数配置

# redis.conf

daemonize no  # 是否以守护进程运行
supervised no  # 是否使用upstart或systemd管理Redis进程
pidfile /var/run/redis_6379.pid  # pid文件位置
loglevel notice  # 日志级别:debug/verbose/notice/warning
logfile ""  # 日志文件位置
databases 16  # 数据库数量

3. 持久化配置

3.1 RDB 快照配置

# redis.conf

save 900 1  # 900秒内有1个修改
save 300 10  # 300秒内有10个修改
save 60 10000  # 60秒内有10000个修改
stop-writes-on-bgsave-error yes  # 当bgsave出错时停止写入
rdbcompression yes  # 是否压缩RDB文件
rdbchecksum yes  # 是否校验RDB文件
dbfilename dump.rdb  # RDB文件名
dir ./  # RDB文件保存目录

3.2 AOF 持久化配置

# redis.conf

appendonly no  # 是否开启AOF持久化
appendfilename "appendonly.aof"  # AOF文件名
appendfsync everysec  # AOF同步策略
no-appendfsync-on-rewrite no  # 重写时是否同步
auto-aof-rewrite-percentage 100  # AOF重写触发条件
auto-aof-rewrite-min-size 64mb  # AOF重写最小大小

4. 主从复制配置

# redis.conf

replica-serve-stale-data yes  # 当从库与主库断开连接时,是否继续提供服务
replica-read-only yes  # 从库是否只读
repl-diskless-sync no  # 是否使用无磁盘复制
repl-diskless-sync-delay 5  # 无磁盘复制延迟时间
replica-priority 100  # 从库优先级

5. 安全配置

# redis.conf

requirepass foobared  # 设置访问密码
rename-command CONFIG ""  # 禁用命令

6. 内存管理

# redis.conf

maxmemory <bytes>  # 最大内存限制
maxmemory-policy noeviction  # 内存达到上限时的处理策略
maxmemory-samples 5  # 内存策略采样数

7. 集群配置

# redis.conf

cluster-enabled yes  # 是否启用集群模式
cluster-config-file nodes-6379.conf  # 集群配置文件
cluster-node-timeout 15000  # 集群节点超时时间
cluster-replica-validity-factor 10  # 从节点有效性因子
cluster-migration-barrier 1  # 迁移屏障
cluster-require-full-coverage yes  # 是否需要完整覆盖

8. 监控配置

8.1 慢查询配置

# redis.conf

slowlog-log-slower-than 10000  # 慢查询阈值(微秒)
slowlog-max-len 128  # 慢查询日志长度

8.2 延迟监控配置

# redis.conf

latency-monitor-threshold 0  # 延迟监控阈值

8.3 事件通知配置

# redis.conf

notify-keyspace-events ""  # 键空间通知配置

9. 高级配置

9.1 数据类型编码配置

# redis.conf

hash-max-ziplist-entries 512  # hash使用ziplist编码的最大条目数
hash-max-ziplist-value 64  # hash使用ziplist编码的最大值长度
list-max-ziplist-entries 512  # list使用ziplist编码的最大条目数
list-max-ziplist-value 64  # list使用ziplist编码的最大值长度
set-max-intset-entries 512  # set使用intset编码的最大条目数
zset-max-ziplist-entries 128  # zset使用ziplist编码的最大条目数
zset-max-ziplist-value 64  # zset使用ziplist编码的最大值长度

9.2 过期策略配置

# redis.conf

# 过期键的删除策略
maxmemory-policy volatile-lru  # 内存达到上限时的处理策略
# 可选值:
# noeviction: 不删除,返回错误
# allkeys-lru: 删除最近最少使用的键
# volatile-lru: 删除设置了过期时间的键中最近最少使用的
# allkeys-random: 随机删除任意键
# volatile-random: 随机删除设置了过期时间的键
# volatile-ttl: 删除即将过期的键
# volatile-lfu: 删除设置了过期时间的键中访问频率最少的
# allkeys-lfu: 删除访问频率最少的键

# 过期键的采样数量
maxmemory-samples 5  # 每次采样时检查的键数量

# 过期键的检查频率
hz 10  # 每秒执行的后台任务频率

9.3 客户端配置

# redis.conf

# 客户端连接限制
maxclients 10000  # 最大客户端连接数
client-output-buffer-limit normal 0 0 0  # 普通客户端输出缓冲区限制
client-output-buffer-limit slave 256mb 64mb 60  # 从节点输出缓冲区限制
client-output-buffer-limit pubsub 32mb 8mb 60  # 发布订阅客户端输出缓冲区限制

# 客户端超时设置
timeout 0  # 客户端空闲超时时间(秒)
tcp-keepalive 300  # TCP keepalive时间(秒)

9.4 性能调优配置

# redis.conf

# 内存优化
activedefrag yes  # 是否启用主动碎片整理
active-defrag-ignore-bytes 100mb  # 碎片整理的最小碎片大小
active-defrag-threshold-lower 10  # 碎片整理的最小碎片百分比
active-defrag-threshold-upper 100  # 碎片整理的最大碎片百分比
active-defrag-cycle-min 25  # 碎片整理的最小CPU使用率
active-defrag-cycle-max 75  # 碎片整理的最大CPU使用率

# 后台任务配置
lazyfree-lazy-eviction no  # 是否异步删除过期键
lazyfree-lazy-expire no  # 是否异步删除过期键
lazyfree-lazy-server-del no  # 是否异步删除服务器命令删除的键
replica-lazy-flush no  # 是否异步清空从节点数据

10. 配置说明

  1. 网络配置:控制 Redis 服务器的网络连接参数,包括绑定 IP、端口、连接超时等。

  2. 通用配置:设置 Redis 的基本运行参数,如守护进程模式、日志级别等。

  3. 持久化配置:控制 RDB 和 AOF 持久化的相关参数,包括保存条件、压缩选项等。

  4. 主从复制配置:设置主从复制的相关参数,控制数据同步和故障转移行为。

  5. 安全配置:提供访问控制和命令重命名等安全特性。

  6. 内存管理:控制内存使用限制和内存达到上限时的处理策略。

  7. 集群配置:Redis Cluster 模式的相关参数设置。

  8. 监控配置:包括慢查询、延迟监控和事件通知等监控功能。

  9. 高级配置:包含数据类型编码、过期策略、客户端管理和性能调优等高级特性。

11. 最佳实践建议

  1. 生产环境建议开启 protected-mode 并设置强密码
  2. 根据实际需求调整内存限制和持久化策略
  3. 合理配置主从复制参数以确保数据安全
  4. 根据业务特点调整数据类型编码参数
  5. 建议开启慢查询日志以便性能优化
  6. 集群环境需要特别注意网络和超时设置
  7. 根据业务特点选择合适的过期策略:
    • 对于缓存场景,建议使用 volatile-lru 或 volatile-ttl
    • 对于持久化数据,建议使用 noeviction
    • 对于内存敏感场景,可以使用 allkeys-lru
  8. 合理设置客户端缓冲区限制,防止内存溢出:
    • 普通客户端通常不需要限制
    • 从节点和发布订阅客户端需要适当限制
  9. 性能调优建议:
    • 在内存碎片较多时启用主动碎片整理
    • 根据服务器性能调整碎片整理参数
    • 对于大键删除,建议启用异步删除
最近更新:: 2026/4/17 13:21
Contributors: Duke
Prev
Redis(单机)安装
Next
Redis数据结构