redis Roadmap
Redis 排障专题
Redis 排障专题:聚合连接被拒绝、NOAUTH 认证失败、内存淘汰策略、big key 定位、Docker 网络不通和 protected-mode 远程访问限制等 Redis 运维问题的完整排障路径与命令模板。
Redis 排障先区分 TCP 连接层(进程/端口/bind/防火墙)和认证层(密码/protected-mode),连接被拒绝通常是网络或配置问题而不是密码问题,Docker 中网络模式和端口映射不一致是最常见的连不上原因。
Troubleshooting Path
推荐排障路线图
- 01
先确认 Redis 进程和端口
用 systemctl status redis 或 docker ps 确认进程在运行,用 ss -lntp 确认 6379 端口在监听,区分本机监听和远程监听。
- 02
再检查 bind 和 protected-mode
redis.conf 的 bind 限制为 127.0.0.1 会拒绝远程连接,protected-mode 开启时无密码远程访问会被拒绝,两者是连接被拒的常见原因。
- 03
继续验证网络路径和认证
从客户端机器 redis-cli -h <ip> ping 测试连通性,连上后确认 requirepass 密码和 ACL 配置,Docker 中注意 bridge 和 host 网络差异。
- 04
最后排查内存和 big key
用 info memory 看内存水位,用 redis-cli --bigkeys 找大 key,确认淘汰策略和 TTL 配置是否合理,避免 OOM 或性能抖动。
Common Issues
高频问题入口
Before You Change
执行前检查
- 不要为了远程连接直接 bind 0.0.0.0 同时关掉 protected-mode,这等于裸奔公网
- Docker 中优先用自定义 bridge 网络让容器用服务名通信,避免端口映射暴露
- requirepass 密码有特殊字符时 URL 连接串需要 URL 编码
- 清理 big key 前确认业务归属,用 UNLINK 异步删除避免阻塞
Start Here
优先阅读
CI 缓存失效排查方法
CI 缓存不命中、每次构建都从零安装依赖时,先对比 restore/save 步骤打印的 cache key 是否变化,再检查缓存路径配置、runner OS 前缀和 gh cache list 中的实际条目,常见根因是 key 把易变内容算入或 restore-keys 顺序不对。
排障Redis 连接不上怎么排查
Redis 客户端报 Could not connect: Connection refused 或 NOAUTH Authentication required 时,先确认 6379 端口是否监听、redis.conf 的 bind 是否限制为 127.0.0.1、protected-mode 是否阻止远程访问,再核对 requirepass 密码和 Docker 端口映射与容器网络。
排障CI 构建内存不足与进程被杀排查
CI 构建时出现 JavaScript heap out of memory、Killed 或 exit code 137,先区分 Node 堆内存不足与系统 OOM,再调整 NODE_OPTIONS=--max-old-space-size、Runner 内存和并发 job,覆盖 GitHub Actions、GitLab CI 和自建 Runner 场景。
排障Linux OOM Killer 与内存不足排查
Linux 进程被 OOM Killer 杀、容器状态 OOMKilled 或 dmesg 出现 Out of memory: Killed process 时,用 dmesg -T 与 journalctl -k 查历史内核日志确认时间和被杀进程,区分宿主机 OOM 与容器 cgroup 限制,再看进程 RSS 增长趋势排查泄漏。
Latest Updates
最近更新
All Runbooks
全部相关内容
CI 构建内存不足与进程被杀排查
CI 构建时出现 JavaScript heap out of memory、Killed 或 exit code 137,先区分 Node 堆内存不足与系统 OOM,再调整 NODE_OPTIONS=--max-old-space-size、Runner 内存和并发 job,覆盖 GitHub Actions、GitLab CI 和自建 Runner 场景。
排障CI 缓存失效排查方法
CI 缓存不命中、每次构建都从零安装依赖时,先对比 restore/save 步骤打印的 cache key 是否变化,再检查缓存路径配置、runner OS 前缀和 gh cache list 中的实际条目,常见根因是 key 把易变内容算入或 restore-keys 顺序不对。
排障Linux OOM Killer 与内存不足排查
Linux 进程被 OOM Killer 杀、容器状态 OOMKilled 或 dmesg 出现 Out of memory: Killed process 时,用 dmesg -T 与 journalctl -k 查历史内核日志确认时间和被杀进程,区分宿主机 OOM 与容器 cgroup 限制,再看进程 RSS 增长趋势排查泄漏。
排障PostgreSQL connection refused 排查方法
psql 连接 PostgreSQL 报 could not connect to server: Connection refused 时,先确认服务是否 running、5432 是否监听、postgresql.conf 的 listen_addresses 是否绑定到目标 IP,再逐层排查防火墙、安全组和 Docker 端口映射,pg_hba.conf 只影响后续认证。
排障Redis 连接不上怎么排查
Redis 客户端报 Could not connect: Connection refused 或 NOAUTH Authentication required 时,先确认 6379 端口是否监听、redis.conf 的 bind 是否限制为 127.0.0.1、protected-mode 是否阻止远程访问,再核对 requirepass 密码和 Docker 端口映射与容器网络。
排障Redis 内存占用过高与淘汰策略排查
Redis 内存持续上涨、报 OOM command not allowed when used memory > 'maxmemory' 或 evicted_keys 飙升时,先用 INFO memory 看 used_memory/maxmemory,CONFIG GET maxmemory-policy 确认策略是否 noeviction,再用 --bigkeys 找大 key 并检查 TTL 是否缺失。
命令Node/Nuxt 构建内存排查命令
Node/Nuxt/Next 构建报 JavaScript heap out of memory 或 exit code 137 时排查内存的常用命令,用 NODE_OPTIONS=--max-old-space-size=4096 扩大 V8 堆,du 查看 .nuxt/.output/.next 构建产物体积,free -h 与 dmesg 判断系统 OOM。
命令ps 查看进程和资源占用命令
Linux ps 查看进程静态快照的常用命令,ps aux --sort=-%cpu/-%mem 按 CPU 或内存排序找可疑进程,ps -ef | grep 按名称过滤,ps -o pid,ppid,stat,etime,cmd 查父子进程和状态,pstree -ap 展示进程树,动态观测配合 top/pidstat。