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 很难把你"坑死"。

相关推荐
遇见火星2 小时前
Docker Compose 实战教程,理解Docker Compose核心概念,学会编写 compose.yml,掌握常用命令!
运维·docker·容器·compose
原神启动12 小时前
Docker(二)—— Docker容器操作
运维·docker·容器
你什么冠军?2 小时前
Docker
运维·容器
梦想的旅途22 小时前
RVA与基址偏移在自动化执行中的稳定性研究
运维·自动化·企业微信·rpa
呼啦啦呼啦啦啦啦啦啦2 小时前
推送docker镜像至私有 Docker 镜像仓库(附企业harbor实战)
运维·docker·容器
czlczl200209252 小时前
SpringBoot实践:从验证码到业务接口的完整交互生命周期
java·spring boot·redis·后端·mysql·spring
二等饼干~za8986682 小时前
碰一碰发视频系统源码开发搭建--技术分享
java·运维·服务器·重构·django·php·音视频
爱学大树锯3 小时前
【Docker本地化超级实践】Docker 镜像离线构建方案
运维·docker·容器
今晚务必早点睡3 小时前
Redis——快速入门第一课:了解redis
数据库·redis·缓存