• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    Redis6.2.6生产环境redis.conf单机配置

    发布者: 姬7089 | 发布时间: 2025-6-19 12:40| 查看数: 62| 评论数: 0|帖子模式

    Redis 生产环境配置详解

    在实际生产环境中,为了保障 Redis 的稳定性和高性能,我们往往需要对默认配置进行一系列优化。本篇博文将以一份经过优化的 Redis 配置文件为例,从基础网络设置、持久化、复制、内存管理、AOF 持久化、性能调优以及监控限制等多个方面进行详细讲解。
    下面给出的是一份示例配置文件,并附上详细注释说明:

    配置文件示例
    1. #####################
    2. # Redis 配置优化文件
    3. # 适用于生产环境
    4. #####################

    5. # 绑定地址,允许所有 IP 访问,生产环境建议改为内网 IP
    6. bind 192.168.1.1

    7. # 保护模式,建议开启 (yes) 以增强安全性
    8. protected-mode yes

    9. # 监听端口
    10. port 6379

    11. # TCP 连接队列大小
    12. tcp-backlog 511

    13. # 连接超时时间(0 代表不超时)
    14. timeout 0

    15. # TCP 保活时间(秒),建议设大一些,避免连接被防火墙误断开
    16. tcp-keepalive 300

    17. # 后台运行
    18. daemonize yes

    19. # 进程 PID 文件路径
    20. pidfile /data/redis/redis_6379.pid

    21. # 日志级别 (debug | verbose | notice | warning)
    22. loglevel notice

    23. # 日志文件路径(空值表示输出到标准输出)
    24. logfile "/data/app/redis/logs/redis-server.log"

    25. # 数据库数量(默认16个,视业务需求调整)
    26. databases 16

    27. # 显示 Redis 启动 Logo(关闭可减少日志干扰)
    28. always-show-logo no
    复制代码
    基础网络与进程管理


    • bind 与 protected-mode配置文件中指定了
      1. bind 192.168.1.1
      复制代码
      ,仅允许该 IP 访问 Redis 服务。对于生产环境,建议使用内网 IP 限制访问范围。同时开启
      1. protected-mode
      复制代码
      (保护模式),可以防止未经授权的访问。
    • 端口与连接设置使用
      1. port 6379
      复制代码
      设定 Redis 监听端口,
      1. tcp-backlog
      复制代码
      则设定了连接队列的长度。
      1. timeout 0
      复制代码
      表示不自动断开空闲连接,而
      1. tcp-keepalive 300
      复制代码
      保持长连接的活性,避免中间设备(如防火墙)因空闲超时断开连接。
    • 后台运行与日志记录通过
      1. daemonize yes
      复制代码
      使 Redis 后台运行,同时定义了 PID 文件路径(
      1. pidfile
      复制代码
      )以及日志文件路径和日志级别。这些设置有助于管理进程和问题排查。

    RDB 持久化配置

    Redis 提供 RDB 持久化方式,可以定时保存内存数据到磁盘。配置文件中针对 RDB 做了如下优化:
    1. #####################
    2. # RDB 持久化
    3. #####################
    4. # RDB 失败时阻止写入,避免数据损坏
    5. stop-writes-on-bgsave-error yes
    6. # 启用 RDB 数据压缩
    7. rdbcompression yes
    8. # 启用 RDB 数据校验
    9. rdbchecksum yes
    10. # RDB 文件名
    11. dbfilename dump.rdb
    12. # 关闭 RDB 删除同步文件,防止误删除
    13. rdb-del-sync-files no
    14. # RDB 文件存储目录,建议设为 SSD 盘
    15. dir /data/app/redis/data/
    复制代码

    • 数据完整性保护使用
      1. stop-writes-on-bgsave-error yes
      复制代码
      ,一旦 RDB 持久化出现错误,则停止写入操作,防止数据不一致。
    • 数据压缩和校验开启
      1. rdbcompression
      复制代码
      1. rdbchecksum
      复制代码
      可有效减小 RDB 文件体积,并通过校验保证数据完整性。
    • 文件存储目录将 RDB 文件存储在
      1. /data/app/redis/data/
      复制代码
      ,建议部署在 SSD 上以获得更高的 I/O 性能。

    复制(主从同步)设置

    在高可用架构中,主从复制是常用手段。配置文件中针对复制功能作了如下设置:
    1. #####################
    2. # 复制(主从同步)
    3. #####################
    4. # 允许副本在断开主库时仍然提供只读服务
    5. replica-serve-stale-data yes
    6. # 副本节点只读模式
    7. replica-read-only yes
    8. # 关闭无磁盘同步(默认使用磁盘同步)
    9. repl-diskless-sync no
    10. # 无磁盘同步的延迟
    11. repl-diskless-sync-delay 5
    12. # 关闭无磁盘加载
    13. repl-diskless-load disabled
    14. # 保持默认 TCP nodelay 配置
    15. repl-disable-tcp-nodelay no
    16. # 副本优先级(越小越容易成为主库)
    17. replica-priority 100
    复制代码

    • 副本服务可用性
      1. replica-serve-stale-data yes
      复制代码
      允许当副本与主库断开时继续提供只读服务,保证业务不中断。
    • 同步方式默认采用磁盘同步,通过调整
      1. repl-diskless-sync-delay
      复制代码
      来控制延迟,保持数据传输的稳定性。
    • 选主策略配置
      1. replica-priority
      复制代码
      ,数值越低的副本在主库故障时更容易被选举为新的主库。

    内存管理

    内存管理是 Redis 性能的核心部分,配置文件中提供了灵活的内存管理策略:
    1. #####################
    2. # 内存管理
    3. #####################
    4. # 默认不限制内存,可根据业务需求调整
    5. maxmemory 0
    6. # 不驱逐数据,可改为 allkeys-lru
    7. maxmemory-policy noeviction
    8. # 关闭惰性删除,避免额外 CPU 开销
    9. lazyfree-lazy-eviction no
    10. # 关闭惰性过期
    11. lazyfree-lazy-expire no
    12. # 关闭惰性删除
    13. lazyfree-lazy-server-del no
    14. # 关闭副本惰性清理
    15. replica-lazy-flush no
    16. # 关闭 OOM 调整
    17. oom-score-adj no
    18. # 仅在 OOM 保护时启用
    19. oom-score-adj-values 0 200 800
    复制代码

    • 内存限制与策略
      1. maxmemory 0
      复制代码
      表示默认无限制内存,适用于内存资源充足的环境;同时设置
      1. maxmemory-policy noeviction
      复制代码
      ,表示在内存达到上限时不驱逐数据。实际生产中,可以根据业务需求选用如
      1. allkeys-lru
      复制代码
      等驱逐策略。
    • 惰性删除关闭各种惰性删除功能(lazyfree-* 配置)可以减少 CPU 额外开销,不过可能会使删除操作较为同步执行,需根据业务场景权衡。

    AOF 持久化

    AOF(Append Only File)是 Redis 的另一种持久化方案,能提供更高的数据安全性。配置文件中对 AOF 进行如下设置:
    1. #####################
    2. # AOF 持久化
    3. #####################
    4. # 启用 AOF 持久化
    5. appendonly yes
    6. # AOF 文件名
    7. appendfilename "appendonly.aof"
    8. # 每秒同步一次,性能和安全的折中方案
    9. appendfsync everysec
    10. # 重写时是否关闭同步
    11. no-appendfsync-on-rewrite no
    12. # 触发 AOF 重写的比例
    13. auto-aof-rewrite-percentage 100
    14. # 触发 AOF 重写的最小大小
    15. auto-aof-rewrite-min-size 64mb
    16. # 允许加载截断的 AOF
    17. aof-load-truncated yes
    18. # AOF 兼容 RDB 头部,减少重启时间
    19. aof-use-rdb-preamble yes
    复制代码

    • 数据安全与性能开启
      1. appendonly yes
      复制代码
      并使用
      1. appendfsync everysec
      复制代码
      ,在数据安全和性能之间取得平衡;每秒同步一次 AOF 文件可以大幅降低数据丢失风险。
    • 自动重写配置
      1. auto-aof-rewrite-percentage
      复制代码
      1. auto-aof-rewrite-min-size
      复制代码
      ,确保 AOF 文件不会无限制增大,同时利用增量重写减少重写期间的性能损耗。
    • 兼容性与恢复启用
      1. aof-use-rdb-preamble
      复制代码
      可以在重启时利用 RDB 头部数据加快加载速度,提升恢复效率。

    性能优化设置

    为了在高并发环境中获得更好的响应速度,Redis 在配置文件中还做了一系列性能调优:
    1. #####################
    2. # 性能优化
    3. #####################
    4. # 调高 Hz 频率,提高响应速度
    5. hz 50
    6. # 动态调整 Hz
    7. dynamic-hz yes
    8. # AOF 重写时增量同步
    9. aof-rewrite-incremental-fsync yes
    10. # RDB 保存时增量同步
    11. rdb-save-incremental-fsync yes
    12. # 启用 jemalloc 线程优化内存管理
    13. jemalloc-bg-thread yes
    复制代码

    • Hz 频率默认的事件处理频率(hz)被调高到 50 次/秒,并启用动态调整,确保在负载波动时依然能够快速响应客户端请求。
    • 增量同步针对 AOF 重写和 RDB 保存启用增量同步,能有效减少磁盘 I/O 的压力,提高整体性能。
    • 内存分配优化启用 jemalloc 的后台线程(
      1. jemalloc-bg-thread yes
      复制代码
      )进一步优化内存分配和释放,适用于高并发场景。

    限制与监控

    为了及时发现问题并防止意外情况发生,Redis 提供了一系列监控和限制设置:
    1. #####################
    2. # 限制与监控
    3. #####################
    4. # 慢查询阈值(微秒)
    5. slowlog-log-slower-than 10000
    6. # 慢查询日志最大条数
    7. slowlog-max-len 128
    8. # 关闭延迟监控
    9. latency-monitor-threshold 0
    10. # 关闭 key 事件通知
    11. notify-keyspace-events ""
    12. # 普通客户端无限制
    13. client-output-buffer-limit normal 0 0 0
    14. # 副本节点限制
    15. client-output-buffer-limit replica 256mb 64mb 60
    16. # PubSub 限制
    17. client-output-buffer-limit pubsub 32mb 8mb 60
    复制代码

    • 慢查询日志通过设置
      1. slowlog-log-slower-than 10000
      复制代码
      (单位为微秒)来记录执行时间超过 10 毫秒的命令,有助于定位性能瓶颈。
    • 客户端输出缓冲区分别对普通客户端、复制节点和 PubSub 模块设定了缓冲区大小限制,防止异常情况(如客户端阻塞)导致内存暴涨。

    其他参数

    最后,配置文件中还定义了一些额外参数,例如 RDB 保存条件和 TCP 相关参数,以进一步细化 Redis 的行为:
    1. #####################
    2. # 其他参数
    3. #####################
    4. # RDB 触发条件
    5. save 900 1 300 10 60 10000
    6. # TCP 连接队列大小
    7. tcp-backlog 511
    8. # TCP 保活时间(秒)
    9. tcp-keepalive 300
    复制代码
    这些参数能根据具体业务场景对数据保存频率、网络连接队列等进行微调,从而达到性能和可靠性之间的平衡。

    完整配置
    1. #########################################
    2. # Redis 配置优化文件
    3. # 适用于生产环境
    4. #########################################

    5. # 绑定地址,允许所有 IP 访问,生产环境建议改为内网 IP
    6. bind 192.168.1.1

    7. # 保护模式,建议开启 (yes) 以增强安全性
    8. protected-mode yes

    9. # 监听端口
    10. port 6379

    11. # TCP 连接队列大小
    12. tcp-backlog 511

    13. # 连接超时时间(0 代表不超时)
    14. timeout 0

    15. # TCP 保活时间(秒),建议设大一些,避免连接被防火墙误断开
    16. tcp-keepalive 300

    17. # 后台运行
    18. daemonize yes

    19. # 进程 PID 文件路径
    20. pidfile /data/app/redis/redis_6379.pid

    21. # 日志级别 (debug | verbose | notice | warning)
    22. loglevel notice

    23. # 日志文件路径(空值表示输出到标准输出)
    24. logfile "/data/redis/logs/redis-server.log"

    25. # 数据库数量(默认16个,视业务需求调整)
    26. databases 16

    27. # 显示 Redis 启动 Logo(关闭可减少日志干扰)
    28. always-show-logo no

    29. #########################################
    30. # RDB 持久化
    31. #########################################
    32. # RDB 失败时阻止写入,避免数据损坏
    33. stop-writes-on-bgsave-error yes
    34. # 启用 RDB 数据压缩
    35. rdbcompression yes
    36. # 启用 RDB 数据校验
    37. rdbchecksum yes
    38. # RDB 文件名
    39. dbfilename dump.rdb
    40. # 关闭 RDB 删除同步文件,防止误删除
    41. rdb-del-sync-files no
    42. # RDB 文件存储目录,建议设为 SSD 盘
    43. dir /data/app/redis/data/

    44. #########################################
    45. # 复制(主从同步)
    46. #########################################
    47. # 允许副本在断开主库时仍然提供只读服务
    48. replica-serve-stale-data yes
    49. # 副本节点只读模式
    50. replica-read-only yes
    51. # 关闭无磁盘同步(默认使用磁盘同步)
    52. repl-diskless-sync no
    53. # 无磁盘同步的延迟
    54. repl-diskless-sync-delay 5
    55. # 关闭无磁盘加载
    56. repl-diskless-load disabled
    57. # 保持默认 TCP nodelay 配置
    58. repl-disable-tcp-nodelay no
    59. # 副本优先级(越小越容易成为主库)
    60. replica-priority 100

    61. #########################################
    62. # 内存管理
    63. #########################################
    64. # 默认不限制内存,可根据业务需求调整
    65. maxmemory 0
    66. # 不驱逐数据,可改为 allkeys-lru
    67. maxmemory-policy noeviction
    68. # 关闭惰性删除,避免额外 CPU 开销
    69. lazyfree-lazy-eviction no
    70. # 关闭惰性过期
    71. lazyfree-lazy-expire no
    72. # 关闭惰性删除
    73. lazyfree-lazy-server-del no
    74. # 关闭副本惰性清理
    75. replica-lazy-flush no
    76. # 关闭 OOM 调整
    77. oom-score-adj no
    78. # 仅在 OOM 保护时启用
    79. oom-score-adj-values 0 200 800

    80. #########################################
    81. # AOF 持久化
    82. #########################################
    83. # 启用 AOF 持久化
    84. appendonly yes
    85. # AOF 文件名
    86. appendfilename "appendonly.aof"
    87. # 每秒同步一次,性能和安全的折中方案
    88. appendfsync everysec
    89. # 重写时是否关闭同步
    90. no-appendfsync-on-rewrite no
    91. # 触发 AOF 重写的比例
    92. auto-aof-rewrite-percentage 100
    93. # 触发 AOF 重写的最小大小
    94. auto-aof-rewrite-min-size 64mb
    95. # 允许加载截断的 AOF
    96. aof-load-truncated yes
    97. # AOF 兼容 RDB 头部,减少重启时间
    98. aof-use-rdb-preamble yes
    99. #########################################
    100. # 性能优化
    101. #########################################
    102. # 调高 Hz 频率,提高响应速度
    103. hz 50
    104. # 动态调整 Hz
    105. dynamic-hz yes
    106. # AOF 重写时增量同步
    107. aof-rewrite-incremental-fsync yes
    108. # RDB 保存时增量同步
    109. rdb-save-incremental-fsync yes
    110. # 启用 jemalloc 线程优化内存管理
    111. jemalloc-bg-thread yes

    112. #########################################
    113. # 限制与监控
    114. #########################################
    115. # 慢查询阈值(微秒)
    116. slowlog-log-slower-than 10000
    117. # 慢查询日志最大条数
    118. slowlog-max-len 128
    119. # 关闭延迟监控
    120. latency-monitor-threshold 0
    121. # 关闭 key 事件通知
    122. notify-keyspace-events ""
    123. # 普通客户端无限制
    124. client-output-buffer-limit normal 0 0 0
    125. # 副本节点限制
    126. client-output-buffer-limit replica 256mb 64mb 60
    127. # PubSub 限制
    128. client-output-buffer-limit pubsub 32mb 8mb 60

    129. #########################################
    130. # 其他参数
    131. #########################################
    132. # RDB 触发条件
    133. save 900 1 300 10 60 10000
    134. # TCP 连接队列大小
    135. tcp-backlog 511
    136. # TCP 保活时间(秒)
    137. tcp-keepalive 300
    复制代码
    总结

    本篇博文详细解析了一份针对生产环境优化后的 Redis 配置文件。通过合理设置网络参数、持久化策略、复制机制、内存管理和性能调优,Redis 能够在高并发和大数据量场景下保持稳定高效运行。
    实际部署时,应根据自身的硬件条件和业务特点对各项参数进行适当调整。对于环境安全、数据可靠性和性能优化等方面,建议参考官方文档和社区最佳实践,不断完善和调优配置。
    到此这篇关于Redis6.2.6生产环境redis.conf单机配置的文章就介绍到这了,更多相关Redis  redis.conf配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    来源:https://www.jb51.net/database/33884334f.htm
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    最新评论

    浏览过的版块

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表