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

相关推荐
人工智能训练12 小时前
【极速部署】Ubuntu24.04+CUDA13.0 玩转 VLLM 0.15.0:预编译 Wheel 包 GPU 版安装全攻略
运维·前端·人工智能·python·ai编程·cuda·vllm
微露清风14 小时前
系统性学习Linux-第二讲-基础开发工具
linux·运维·学习
阳光九叶草LXGZXJ14 小时前
达梦数据库-学习-48-DmDrs控制台命令(同步之Manager、CPT模块)
linux·运维·数据库·sql·学习
小二李16 小时前
第11章 nestjs服务端开发:登录鉴权
运维·服务器
i建模16 小时前
如何在Arch Linux中重设忘记的root密码
linux·运维·服务器
chatexcel17 小时前
元空AI+Clawdbot:7×24 AI办公智能体新形态详解(长期上下文/自动化任务/工具粘合)
运维·人工智能·自动化
kida_yuan17 小时前
【Linux】运维实战笔记 — 我常用的方法与命令
linux·运维·笔记
xxxmine17 小时前
redis学习
数据库·redis·学习
qq_54702617918 小时前
Redis 常见问题
数据库·redis·mybatis
知识即是力量ol19 小时前
基于 Redis 实现白名单,黑名单机制详解及应用场景
数据库·redis·缓存