Redis——快速入门第六课:Redis 运维 & 排错实战

文章目录

  • [第 6 课:Redis 运维 & 排错实战](#第 6 课:Redis 运维 & 排错实战)
    • 一、排查总原则(先记住)
    • [二、场景 1:Redis 连不上(最常见)](#二、场景 1:Redis 连不上(最常见))
      • [① 先确认 Redis 服务是否在跑](#① 先确认 Redis 服务是否在跑)
      • [② 再看端口有没有监听(最关键)](#② 再看端口有没有监听(最关键))
      • [③ 用 redis-cli 直连测试](#③ 用 redis-cli 直连测试)
      • [④ 看应用连的地址对不对](#④ 看应用连的地址对不对)
    • [三、场景 2:systemctl 显示没启动,但 Redis 却能用](#三、场景 2:systemctl 显示没启动,但 Redis 却能用)
    • [四、场景 3:6379 端口冲突 / Redis 起不来](#四、场景 3:6379 端口冲突 / Redis 起不来)
    • [五、场景 4:Redis 内存突然暴涨](#五、场景 4:Redis 内存突然暴涨)
      • [① 先看 Redis 用了多少内存](#① 先看 Redis 用了多少内存)
      • [② 看 key 数量(危险信号)](#② 看 key 数量(危险信号))
      • [③ 排查"大 key / 热 key"(基础版)](#③ 排查“大 key / 热 key”(基础版))
    • [六、场景 5:Redis 数据"没了"(新手最慌)](#六、场景 5:Redis 数据“没了”(新手最慌))
      • 先别慌,先判断是哪种"没了"
        • [情况 1️⃣ key 过期了(最常见)](#情况 1️⃣ key 过期了(最常见))
        • [情况 2️⃣ Redis 重启了(数据没持久化)](#情况 2️⃣ Redis 重启了(数据没持久化))
        • [情况 3️⃣ 用的是 Docker,没挂载数据目录](#情况 3️⃣ 用的是 Docker,没挂载数据目录)
    • [七、场景 6:本地 Redis / Docker Redis 混乱(高频)](#七、场景 6:本地 Redis / Docker Redis 混乱(高频))
      • [你一定要搞清楚这 3 件事](#你一定要搞清楚这 3 件事)
    • [八、Redis 运维"黄金 10 命令"(直接背)](#八、Redis 运维“黄金 10 命令”(直接背))
    • [九、Redis 运维排错 Checklist(照着走)](#九、Redis 运维排错 Checklist(照着走))
    • 十、一句话总结(非常重要)

第 6 课:Redis 运维 & 排错实战

目标:
Redis 连不上、端口冲突、Docker/本地混乱、内存异常,都能自己定位


一、排查总原则(先记住)

Redis 出问题,永远按这 4 步走:
服务 → 进程 → 端口 → 连接

顺序不要乱。


二、场景 1:Redis 连不上(最常见)

① 先确认 Redis 服务是否在跑

bash 复制代码
ps -ef | grep redis | grep -v grep
  • ❌ 没有输出 → Redis 没启动
  • ✅ 有 redis-server → 继续

② 再看端口有没有监听(最关键)

bash 复制代码
ss -lntp | grep 6379

常见情况:

  • redis-server → 本地 Redis
  • docker-proxy → Docker Redis
  • ❌ 没输出 → 端口没起来

③ 用 redis-cli 直连测试

bash 复制代码
redis-cli ping
  • PONG → Redis 正常
  • Could not connect → 配置/网络问题

④ 看应用连的地址对不对

Spring Boot 里常见错误:

yaml 复制代码
spring:
  redis:
    host: 127.0.0.1   # 但 Redis 在 Docker 里没映射

👉 Docker Redis 必须 -p 6379:6379


三、场景 2:systemctl 显示没启动,但 Redis 却能用

这是你之前已经遇到过的典型问题

表现

bash 复制代码
systemctl status redis
# inactive

但:

bash 复制代码
redis-cli ping
# PONG

真相(99%)

Docker 里的 Redis 在跑,本地 Redis 已经停了

验证

bash 复制代码
docker ps | grep redis
ss -lntp | grep 6379

看到 docker-proxy 就对了。


四、场景 3:6379 端口冲突 / Redis 起不来

表现

  • Docker Redis 启动失败
  • 提示端口占用

排查步骤

bash 复制代码
ss -lntp | grep 6379

再看进程:

bash 复制代码
ps -ef | grep redis

解决思路(选一个)

  • 方案 A(推荐)
    停本地 Redis → Docker 用 6379
bash 复制代码
systemctl stop redis
systemctl disable redis
  • 方案 B
    Docker Redis 用其他端口
bash 复制代码
-p 6380:6379

五、场景 4:Redis 内存突然暴涨

① 先看 Redis 用了多少内存

bash 复制代码
redis-cli info memory

重点看:

text 复制代码
used_memory_human:1.23G

② 看 key 数量(危险信号)

bash 复制代码
redis-cli dbsize

key 特别多,说明:

  • key 没过期
  • 或 key 设计有问题

③ 排查"大 key / 热 key"(基础版)

bash 复制代码
redis-cli --bigkeys

👉 会告诉你哪些 key 占内存大


六、场景 5:Redis 数据"没了"(新手最慌)

先别慌,先判断是哪种"没了"

情况 1️⃣ key 过期了(最常见)
bash 复制代码
ttl user:1001

返回 -2 → 已不存在


情况 2️⃣ Redis 重启了(数据没持久化)
bash 复制代码
redis-cli info server | grep uptime

uptime 很小 → 刚重启


情况 3️⃣ 用的是 Docker,没挂载数据目录
bash 复制代码
docker inspect redis | grep Mounts -A 5

没看到 /data 映射 → 容器一删数据全没


七、场景 6:本地 Redis / Docker Redis 混乱(高频)

你一定要搞清楚这 3 件事

bash 复制代码
which redis-server
ps -ef | grep redis
ss -lntp | grep 6379

判断规则:

现象 说明
docker-proxy Docker Redis
redis-server 本地 Redis
两个都有 混乱(必须清理)

八、Redis 运维"黄金 10 命令"(直接背)

bash 复制代码
redis-cli ping
redis-cli info server
redis-cli info memory
redis-cli dbsize
ps -ef | grep redis
ss -lntp | grep 6379
systemctl status redis
docker ps | grep redis
redis-cli config get dir
redis-cli --bigkeys

👉 90% 问题都靠它们解决


九、Redis 运维排错 Checklist(照着走)

  1. Redis 服务在不在?
  2. 6379 有没有监听?
  3. 是本地还是 Docker?
  4. 应用连的 IP/端口对不对?
  5. Redis 有没有刚重启?
  6. 数据有没有过期?
  7. 有没有挂载数据目录?

十、一句话总结(非常重要)

Redis 排错的核心是:
看进程 → 看端口 → 看连接 → 看数据

只要你不跳步,Redis 很难把你"坑死"。

相关推荐
聆风吟º3 小时前
CANN开源项目深度实践:基于amct-toolkit实现自动化模型量化与精度保障策略
运维·开源·自动化·cann
较劲男子汉6 小时前
CANN Runtime零拷贝传输技术源码实战 彻底打通Host与Device的数据传输壁垒
运维·服务器·数据库·cann
风流倜傥唐伯虎7 小时前
Spring Boot Jar包生产级启停脚本
java·运维·spring boot
Doro再努力7 小时前
【Linux操作系统10】Makefile深度解析:从依赖推导到有效编译
android·linux·运维·服务器·编辑器·vim
senijusene7 小时前
Linux软件编程:IO编程,标准IO(1)
linux·运维·服务器
忧郁的橙子.7 小时前
02-本地部署Ollama、Python
linux·运维·服务器
醇氧7 小时前
【linux】查看发行版信息
linux·运维·服务器
No8g攻城狮7 小时前
【Linux】Windows11 安装 WSL2 并运行 Ubuntu 22.04 详细操作步骤
linux·运维·ubuntu
酷酷的崽7988 小时前
CANN 生态可维护性与可观测性:构建生产级边缘 AI 系统的运维体系
运维·人工智能
做人不要太理性8 小时前
CANN Runtime 运行时组件深度解析:任务调度机制、存储管理策略与维测体系构建逻辑
android·运维·魔珐星云