8.2.3 核心配置文件参数解读

本节聚焦 redis.conf 核心参数,结合“原理草图 + 安装/配置示例 + 验证命令 + 排错 + 练习”快速掌握参数影响范围与取舍方法。

原理草图:参数与运行路径关系

文章图片

一、配置文件位置与基础启动示例(含命令解释)

# 1) 创建配置目录并复制默认配置
sudo mkdir -p /etc/redis
sudo cp /usr/local/redis/redis.conf /etc/redis/redis.conf

# 2) 以指定配置启动(--requirepass 可临时覆盖)
/usr/local/redis/bin/redis-server /etc/redis/redis.conf

# 3) 查看启动参数与进程
ps -ef | grep redis-server
# 预期效果:
# 看到 redis-server *:6379 或者绑定的网卡IP

二、核心参数示例:按功能分组与可执行配置

# /etc/redis/redis.conf 关键片段(可直接使用)
daemonize yes
pidfile /var/run/redis_6379.pid
logfile /var/log/redis/redis_6379.log
loglevel notice
supervised systemd
dir /var/lib/redis

# 网络与连接
bind 127.0.0.1 10.0.0.10
port 6379
protected-mode yes
tcp-backlog 511
timeout 0
tcp-keepalive 300

# 客户端与性能
maxclients 10000
databases 16
latency-monitor-threshold 100
hz 10
dynamic-hz yes

# 内存与淘汰
maxmemory 4gb
maxmemory-policy allkeys-lru
maxmemory-samples 5
activedefrag yes

# 持久化
save 900 1
save 300 10
save 60 10000
rdbcompression yes
rdbchecksum yes
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite yes
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-use-rdb-preamble yes

# 复制
replicaof 10.0.0.11 6379
masterauth "StrongPass@2024"
replica-read-only yes
repl-diskless-sync yes
repl-diskless-sync-delay 5
repl-backlog-size 256mb

# 安全与ACL
requirepass "StrongPass@2024"
aclfile /etc/redis/users.acl
rename-command FLUSHALL ""
rename-command CONFIG ""

# 集群/监控
cluster-enabled no
cluster-config-file nodes-6379.conf
cluster-node-timeout 15000
slowlog-log-slower-than 10000
slowlog-max-len 128
notify-keyspace-events Ex

三、命令验证与效果确认

# 连接验证(带密码)
/usr/local/redis/bin/redis-cli -h 10.0.0.10 -p 6379 -a 'StrongPass@2024' ping

# 查看关键配置(确认已生效)
/usr/local/redis/bin/redis-cli -a 'StrongPass@2024' CONFIG GET maxmemory
/usr/local/redis/bin/redis-cli -a 'StrongPass@2024' CONFIG GET maxmemory-policy
/usr/local/redis/bin/redis-cli -a 'StrongPass@2024' CONFIG GET appendonly
/usr/local/redis/bin/redis-cli -a 'StrongPass@2024' CONFIG GET requirepass

# 查看慢日志与延迟监控
/usr/local/redis/bin/redis-cli -a 'StrongPass@2024' SLOWLOG LEN
/usr/local/redis/bin/redis-cli -a 'StrongPass@2024' LATENCY LATEST

四、常见排错与定位命令(含解释)

# 1) 无法连接:检查监听地址与端口
ss -lntp | grep 6379
# 预期:LISTEN 0 511 10.0.0.10:6379

# 2) 报错 "Connection refused":检查 bind/protected-mode
grep -E '^(bind|protected-mode|port)' /etc/redis/redis.conf

# 3) 最大连接数不足:检查 maxclients 与系统 fd 上限
/usr/local/redis/bin/redis-cli -a 'StrongPass@2024' CONFIG GET maxclients
ulimit -n

# 4) AOF 文件膨胀:检查重写阈值
/usr/local/redis/bin/redis-cli -a 'StrongPass@2024' INFO persistence | egrep 'aof|rewrite'

五、实战练习(确保可执行)
1) 练习1:调整内存与淘汰策略
- 目标:限制 1GB 内存并采用 allkeys-lfu

# 修改配置
sudo sed -i 's/^maxmemory .*/maxmemory 1gb/' /etc/redis/redis.conf
sudo sed -i 's/^maxmemory-policy .*/maxmemory-policy allkeys-lfu/' /etc/redis/redis.conf

# 重启并验证
sudo systemctl restart redis
/usr/local/redis/bin/redis-cli -a 'StrongPass@2024' CONFIG GET maxmemory
/usr/local/redis/bin/redis-cli -a 'StrongPass@2024' CONFIG GET maxmemory-policy

2) 练习2:验证 AOF 与 RDB 同时开启
- 目标:观察持久化文件生成

# 写入数据并触发保存
/usr/local/redis/bin/redis-cli -a 'StrongPass@2024' SET k1 v1
/usr/local/redis/bin/redis-cli -a 'StrongPass@2024' SAVE

# 检查文件
ls -lh /var/lib/redis | egrep 'dump.rdb|appendonly.aof'

3) 练习3:模拟慢查询
- 目标:slowlog 收集

/usr/local/redis/bin/redis-cli -a 'StrongPass@2024' DEBUG SLEEP 0.02
/usr/local/redis/bin/redis-cli -a 'StrongPass@2024' SLOWLOG GET 5

六、参数取舍提示(场景化)
- 高吞吐缓存:重点 maxmemory + 淘汰策略 + tcp-backlog。
- 数据安全优先:开启 AOF everysec + rdbchecksum,并评估磁盘 I/O。
- 高并发连接:maxclients 与 ulimit -n 同步提升,配合 tcp-keepalive。
- 变更原则:先灰度、后压测,确认延迟与内存变化再全量推广。