debian

Debian Redis配置中常见问题及解决

小樊
44
2025-12-13 05:47:32
栏目: 云计算

Debian 环境下 Redis 配置常见问题与解决

一 基础检查与快速定位

二 常见故障与修复对照表

症状 高频原因 快速修复
服务启动失败(systemctl 报错) 配置语法错误、权限/路径不当、systemd 与 Redis 监督模式不匹配 1) sudo redis-server /etc/redis/redis.conf --test-memory 2 校验;2) 检查日志 /var/log/redis/redis-server.log;3) 若使用 systemd 监督,确保 daemonize nosupervised systemd,必要时安装 libsystemd-dev 并用 make USE_SYSTEMD=yes 重编译;4) 修正目录权限(如 /var/lib/redis/var/log/redis 归属 redis:redis
本地能连,远程连不上 仅绑定 127.0.0.1、启用了 protected-mode 且无密码、云安全组/防火墙未放行 1) 在 /etc/redis/redis.conf 中注释或调整 bind(如仅内网 IP);2) 设置强密码 requirepass;3) 必要时将 protected-mode 设为 no(仅在内网可信环境);4) 放行防火墙/安全组 6379/tcp
启动报错 “systemd/sd-daemon.h: No such file or directory” Redis 编译时未启用 systemd 支持 安装 libsystemd-dev,重新编译:make USE_SYSTEMD=yes install,并在 redis.conf 中设置 supervised systemd
修改配置不生效 未重启服务、改错文件、配置被包含文件覆盖 使用 sudo systemctl restart redis-server 重启;确认编辑的是 /etc/redis/redis.conf;注意 include 可能覆盖前面的设置
高并发下连接建立慢或失败 tcp-backlog 与内核 somaxconn 过低 提高 tcp-backlog(如 511/更高),并在 /etc/sysctl.conf 设置 net.core.somaxconn=65535sudo sysctl -p 生效
内存不足导致频繁淘汰或阻塞 未设置 maxmemory 与淘汰策略 设置 maxmemory <size>(如物理内存的 60%–70%)与 maxmemory-policy allkeys-lru 等策略,避免 OOM 与性能抖动

三 关键配置项与推荐值

四 生产环境最小可用配置示例

# 网络
bind 10.0.0.10         # 仅内网
port 6379
protected-mode yes
tcp-backlog 1024
timeout 0
tcp-keepalive 300

# 安全
requirepass YourStrongPassw0rd!
rename-command FLUSHALL "FLUSHALL_PROD"
rename-command FLUSHDB  "FLUSHDB_PROD"
rename-command SHUTDOWN "SHUTDOWN_PROD"

# 持久化
dir /var/lib/redis
dbfilename dump.rdb
save 900 1
save 300 10
save 60 10000
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

# 内存
maxmemory 2gb
maxmemory-policy allkeys-lru

# 日志与监控
loglevel notice
logfile /var/log/redis/redis-server.log
slowlog-log-slower-than 10000
slowlog-max-len 128

# 其他
databases 16
lazyfree-lazy-eviction yes

五 安全与加固要点

0
看了该问题的人还看了