- 博客(13)
- 收藏
- 关注
原创 Big Key 清除的最后一步:UNLINK、分批删除与 Key 拆分实战(Redis 8.2)
本文系统拆除 Redis Big Key 的十大隐患,通过 UNLINK 实现异步删除,将主线程耗时从毫秒级降至微秒级;针对无法整体删除场景,提出分批删除策略,结合 键拆分 治本之策,并建立预防体系,彻底解决删除阻塞、读放大与内存倾斜问题。实测验证:100万级大Key删除耗时下降5000倍,关键结论已落地可复用。
2026-09-20 10:19:06
546
原创 一个 DEL 卡了 1 秒:Big Key 危害的解剖报告——单线程阻塞、过期隐形删除与数据倾斜 tags:
本文深入剖析 Redis Big Key 的三大“罪状”:删除卡顿源于单线程与 O(N) 释放,读取放大引发网络风暴与输出缓冲溢出,以及隐形删除(覆盖、过期、驱逐)导致慢日志盲区。通过实测验证,100万 field Hash 删除耗时达112ms,而2MB String虽小却因高QPS迅速打满千兆带宽。关键发现:10万 field 以下删除不触发慢日志,悄然侵蚀系统性能;读操作的真正瓶颈在传输而非执行。揭示了“删着卡”与“读着卡”的本质机理,为优化提供精准靶点。
2026-09-19 21:17:57
300
原创 几十万个 key 扫不过来?--bigkeys、SCAN、RDB 离线分析三步定位最该清的 Big Key
本文详解如何彻底排查 Redis Big Key,突破 --bigkeys 仅报冠军的局限。通过“粗扫—全扫—离线分析”三步法:先用 --memkeys 建立内存直觉;再以 SCAN 配合 MEMORY USAGE 编写脚本,全量扫描并按自定义阈值筛选所有大 key;最后借助 RDB 离线分析实现零干扰排查。结合实战案例,手把手生成可执行的《清除优先级清单》,确保线上无风险、无遗漏,10 分钟内完成全面诊断。
2026-09-18 11:40:49
408
原创 Big Key 排查入门:Docker 搭环境亲手埋四颗 “内存炸弹“,10 分钟抓到第一个 Big Key
本文通过 Docker 搭建 Redis 8.2 实验环境,亲手构造大 String、大 Hash、大 ZSet、大 List 四类典型 Big Key,并结合 10 万个正常 key 模拟生产场景。手把手演示如何用 --bigkeys 工具发现内存炸弹,掌握“认识→埋雷→发现”排查第一步,实现从零开始的 Big Key 定位实战。
2026-09-17 10:11:44
367
原创 慢查询优化的最后一步:JOIN、联合索引与覆盖索引实战(MySQL 8.0)
本文解剖并修复了慢查询榜单中最后一条耗时22.6秒的JOIN SQL,通过EXPLAIN分析发现orders.user_id缺失索引导致全表扫描。结合MySQL 8.0的hash join机制,揭示了无索引JOIN的性能瓶颈。最终通过添加联合索引idx_user_id,将执行时间从812毫秒降至1.39毫秒,实现毫秒级响应。全文总结出“驱动表优先、索引对齐、避免全表扫描”的慢查询优化方法论,完成系列收官。
2026-09-16 09:54:24
255
原创 读懂 EXPLAIN:一条慢 SQL 的解剖报告(附 type/key/Extra 速查表)
本文通过EXPLAIN剖析慢查询榜单中的name LIKE '%34567',揭示“有索引仍无效”的核心原因:左模糊查询无法利用B+树索引的最左匹配原则,导致全表扫描。尽管添加索引后possible_keys仍为NULL,优化器拒绝使用。对比右模糊LIKE '用户34567%'可正常走range索引,印证了索引匹配的局限性。结合EXPLAIN各字段分析,强调type=ALL、key=NULL为关键警报信号,提醒开发者避免左模糊陷阱。
2026-09-15 10:30:34
238
原创 慢日志太多看不过来?pt-query-digest 三步定位最值得修的 Top SQL
本文延续慢查询排查系列,针对生产环境海量慢日志(如309条)无法肉眼分析的痛点,介绍使用mysqldumpslow与pt-query-digest两款工具三步筛选“最值得修”的Top SQL:第一步聚合(按指纹归类),第二步排序(按总耗时优先),第三步解读(结合次数、耗时、返回行数定优先级)。通过模拟真实流量生成测试日志,演示如何快速定位高频高耗时的慢SQL,实现5分钟内输出可执行的优化清单,提升排查效率。
2026-09-14 14:50:18
149
原创 慢查询排查入门:Docker 搭环境 + 慢查询日志,10 分钟抓到第一条慢 SQL
周四下午,你正在写需求,突然收到告警:订单查询接口的 P99 从 200ms 涨到了 8 秒。打开代码看了半天——逻辑很简单,就是按手机号查用户、再关联订单表,代码没有任何改动。是哪条 SQL 慢?现在跑的 SQL 那么多。它为什么慢?是数据量大了,还是没走索引?该怎么修?加索引?改 SQL?加缓存?这不是某一个人的困境。排查慢查询其实是一个有标准流程的工程问题,核心就四步:fill:#333;important;important;fill:none;color:#333;color:#333;
2026-09-11 16:22:21
562
原创 【Redis】生产上如何禁用flushall、flushdb等危险命令了
大家都知道以下这些命令、如果在生产下误用,可能对我们生产环境造成十分严重危害,那我们有没有手段可以预防,有什么手段可以用了?进行测试,我们可以发现已经无法使用flushall命令了。从上面这段可以知道我们只要添加。修改redis配置文件。就可以禁用XXX操作。
2023-11-11 10:22:49
811
1
原创 redis个人学习笔记
文章目录一、redis是什么?二、redis常用指令1.通用指令2.String类型指令3.List类型指令4.Set类型指令4.Hash类型指令5.Zset类型指令总结一、redis是什么?Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis 有5 种基础数据结构,它们分别是:string(字符串)、list(列表)、hash(字典
2020-11-29 20:36:34
180
原创 docker学习笔记
文章目录一、Docker是什么?二、Docker常用命令1.帮助命令2.镜像命令3.容器命令3.容器数据卷4.DockerFile概念5.Dockerfile 保留字指令一、Docker是什么?Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口 二、Docker常用命令1.帮助命令运行dockerService start.
2020-11-26 17:19:09
250
原创 nginx学习笔记
nginx学习笔记nginx是什么nginx常用的命令查看nginx的版本号启动nginx关闭nginx重新加载nginxnginx的反向代理nginx的负载均衡nginx的动静分离worker_process的数量涉资nginx是什么Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。nginx常用的命令使用nginx操作命令前提条件:必须进入nginx的目录查看nginx的版本号./nginx -v启动nginx
2020-11-24 18:34:58
156
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅