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

相关推荐
Java.熵减码农1 小时前
解决Linux修改环境变量后导致登录循环进不去系统的问题
linux·运维·服务器
qq_318121592 小时前
互联网大厂Java面试故事:从Spring Boot到微服务架构的技术挑战与解答
java·spring boot·redis·spring cloud·微服务·面试·内容社区
明天好,会的2 小时前
分形生成实验(五):人机协同破局--30万token揭示Actix-web状态管理的微妙边界
运维·服务器·前端
Mr__Miss2 小时前
保持redis和数据库一致性(双写一致性)
数据库·redis·spring
猫头虎2 小时前
如何在浏览器里体验 Windows在线模拟器:2026最新在线windows模拟器资源合集与技术揭秘
运维·网络·windows·系统架构·开源·运维开发·开源软件
C_心欲无痕2 小时前
nginx - alias 和 root 的区别详解
运维·前端·nginx
HIT_Weston3 小时前
95、【Ubuntu】【Hugo】搭建私人博客:_default&partials
linux·运维·ubuntu
实心儿儿4 小时前
Linux —— 基础开发工具5
linux·运维·算法
oMcLin4 小时前
如何在SUSE Linux Enterprise Server 15 SP4上通过配置并优化ZFS存储池,提升文件存储与数据备份的效率?
java·linux·运维
SelectDB4 小时前
驾驭 CPU 与编译器:Apache Doris 实现极致性能的底层逻辑
运维·数据库·apache