Redis

关注公众号 jb51net

关闭
首页 > 数据库 > Redis > Redis  redis.conf配置

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

作者:XMYX-0

在实际生产环境中,为了保障 Redis 的稳定性和高性能,我们往往需要对默认配置进行一系列优化,本文主要介绍了Redis6.2.6生产环境redis.conf单机配置,感兴趣的可以了解一下

Redis 生产环境配置详解

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

下面给出的是一份示例配置文件,并附上详细注释说明:

配置文件示例

#####################
# Redis 配置优化文件
# 适用于生产环境
#####################

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

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

# 监听端口
port 6379

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

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

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

# 后台运行
daemonize yes

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

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

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

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

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

基础网络与进程管理

RDB 持久化配置

Redis 提供 RDB 持久化方式,可以定时保存内存数据到磁盘。配置文件中针对 RDB 做了如下优化:

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

复制(主从同步)设置

在高可用架构中,主从复制是常用手段。配置文件中针对复制功能作了如下设置:

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

内存管理

内存管理是 Redis 性能的核心部分,配置文件中提供了灵活的内存管理策略:

#####################
# 内存管理
#####################
# 默认不限制内存,可根据业务需求调整
maxmemory 0
# 不驱逐数据,可改为 allkeys-lru
maxmemory-policy noeviction
# 关闭惰性删除,避免额外 CPU 开销
lazyfree-lazy-eviction no 
# 关闭惰性过期
lazyfree-lazy-expire no 
# 关闭惰性删除
lazyfree-lazy-server-del no 
# 关闭副本惰性清理
replica-lazy-flush no
# 关闭 OOM 调整
oom-score-adj no 
# 仅在 OOM 保护时启用
oom-score-adj-values 0 200 800

AOF 持久化

AOF(Append Only File)是 Redis 的另一种持久化方案,能提供更高的数据安全性。配置文件中对 AOF 进行如下设置:

#####################
# AOF 持久化
#####################
# 启用 AOF 持久化
appendonly yes 
# AOF 文件名
appendfilename "appendonly.aof" 
# 每秒同步一次,性能和安全的折中方案
appendfsync everysec
# 重写时是否关闭同步
no-appendfsync-on-rewrite no
# 触发 AOF 重写的比例
auto-aof-rewrite-percentage 100 
# 触发 AOF 重写的最小大小
auto-aof-rewrite-min-size 64mb
# 允许加载截断的 AOF
aof-load-truncated yes
# AOF 兼容 RDB 头部,减少重启时间
aof-use-rdb-preamble yes 

性能优化设置

为了在高并发环境中获得更好的响应速度,Redis 在配置文件中还做了一系列性能调优:

#####################
# 性能优化
#####################
# 调高 Hz 频率,提高响应速度
hz 50
# 动态调整 Hz
dynamic-hz yes 
# AOF 重写时增量同步
aof-rewrite-incremental-fsync yes
# RDB 保存时增量同步
rdb-save-incremental-fsync yes 
# 启用 jemalloc 线程优化内存管理
jemalloc-bg-thread yes

限制与监控

为了及时发现问题并防止意外情况发生,Redis 提供了一系列监控和限制设置:

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

其他参数

最后,配置文件中还定义了一些额外参数,例如 RDB 保存条件和 TCP 相关参数,以进一步细化 Redis 的行为:

#####################
# 其他参数
#####################
# RDB 触发条件
save 900 1 300 10 60 10000 
# TCP 连接队列大小
tcp-backlog 511
# TCP 保活时间(秒)
tcp-keepalive 300

这些参数能根据具体业务场景对数据保存频率、网络连接队列等进行微调,从而达到性能和可靠性之间的平衡。

完整配置

#########################################
# Redis 配置优化文件
# 适用于生产环境
#########################################

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

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

# 监听端口
port 6379

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

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

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

# 后台运行
daemonize yes

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

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

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

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

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

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

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

#########################################
# 内存管理
#########################################
# 默认不限制内存,可根据业务需求调整
maxmemory 0
# 不驱逐数据,可改为 allkeys-lru
maxmemory-policy noeviction
# 关闭惰性删除,避免额外 CPU 开销
lazyfree-lazy-eviction no 
# 关闭惰性过期
lazyfree-lazy-expire no 
# 关闭惰性删除
lazyfree-lazy-server-del no 
 # 关闭副本惰性清理
replica-lazy-flush no
 # 关闭 OOM 调整
oom-score-adj no 
# 仅在 OOM 保护时启用
oom-score-adj-values 0 200 800

#########################################
# AOF 持久化
#########################################
# 启用 AOF 持久化
appendonly yes 
# AOF 文件名
appendfilename "appendonly.aof" 
# 每秒同步一次,性能和安全的折中方案
appendfsync everysec
# 重写时是否关闭同步
no-appendfsync-on-rewrite no
# 触发 AOF 重写的比例
auto-aof-rewrite-percentage 100 
# 触发 AOF 重写的最小大小
auto-aof-rewrite-min-size 64mb
# 允许加载截断的 AOF
aof-load-truncated yes
 # AOF 兼容 RDB 头部,减少重启时间
aof-use-rdb-preamble yes 
#########################################
# 性能优化
#########################################
# 调高 Hz 频率,提高响应速度
hz 50
# 动态调整 Hz
dynamic-hz yes 
# AOF 重写时增量同步
aof-rewrite-incremental-fsync yes
# RDB 保存时增量同步
rdb-save-incremental-fsync yes 
 # 启用 jemalloc 线程优化内存管理
jemalloc-bg-thread yes

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

#########################################
# 其他参数
#########################################
# RDB 触发条件
save 900 1 300 10 60 10000 
# TCP 连接队列大小
tcp-backlog 511
# TCP 保活时间(秒)
tcp-keepalive 300

总结

本篇博文详细解析了一份针对生产环境优化后的 Redis 配置文件。通过合理设置网络参数、持久化策略、复制机制、内存管理和性能调优,Redis 能够在高并发和大数据量场景下保持稳定高效运行。

实际部署时,应根据自身的硬件条件和业务特点对各项参数进行适当调整。对于环境安全、数据可靠性和性能优化等方面,建议参考官方文档和社区最佳实践,不断完善和调优配置。

到此这篇关于Redis6.2.6生产环境redis.conf单机配置的文章就介绍到这了,更多相关Redis  redis.conf配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文