禅与计算机 禅与计算机
首页
  • Java基础

    • 一文搞懂Java核心技术
    • Java面向对象知识点大总结,建议收藏
    • 聊聊Java中的异常
    • 聊聊Java中的常用类String
    • 万字长文带你细聊Java注解本质
    • 来聊聊Java的反射机制
    • 深入解析Java泛型的魅力与机制
    • Java集合框架深度解析与面试指南
    • Java常用集合类HashMap深度解析
    • LinkedHashMap源码到面试题的全解析
    • 深入解析CopyOnWriteArrayList的工作机制
    • Java基础IO总结
    • Java三大IO模型小结
    • Java BIO NIO AIO详解
    • Java进阶NIO之IO多路复用详解
    • Java8流式编程入门
    • 一文速通lambda与函数式编程
    • Java8函数式方法引用最佳实践
    • Java异常:从原理到实践
  • Java并发编程

    • Java并发编程基础小结
    • 深入理解Java中的final关键字
    • 浅谈Java并发安全发布技术
    • 浅谈Java并发编程中断的哲学
    • Java线程池知识点小结
    • 浅谈Java线程池中拒绝策略与流控的艺术
    • synchronized关键字使用指南
    • 深入源码解析synchronized关键字
    • 详解JUC包下的锁
    • 详解并发编程中的CAS原子类
    • LongAdder源码分析
    • AQS源码解析
    • 深入剖析Java并发编程中的死锁问题
    • Java并发容器总结
    • 详解Java并发编程volatile关键字
    • 并发编程ThreadLocal必知必会
    • CompletableFuture基础实践小结
    • CompletableFuture异步多任务最佳实践
    • 硬核详解FutureTask设计与实现
    • 线程池大小设置的底层逻辑与场景化方案
    • 来聊一个有趣的限流器RateLimiter
  • JVM相关

    • 从零开始掌握 JVM
    • JVM核心知识点小结
    • JVM指令集概览:基础与应用
    • JVM类加载器深度解析
    • JVM方法区深度解析
    • Java内存模型JMM详解
    • Java对象大小的精确计算方法
    • 逃逸分析在Java中的应用与优化
    • 从零开始理解JVM的JIT编译机制
    • G1垃圾回收器:原理详解与调优指南
    • JVM故障排查实战指南
    • JVM内存问题排错最佳实践
    • JVM内存溢出排查指南
    • 简明的Arthas使用教程
    • 简明的Arthas配置及基础运维教程
    • 基于Arthas Idea的JVM故障排查与指令生成
    • 基于arthas量化监控诊断java应用方法论与实践
    • 深入剖析arthas技术原理
    • 探索JVM的隐秘角落:元空间详解
  • 深入理解Spring框架

    • Spring 核心知识点全面解析
    • Spring核心功能IOC详解
    • Spring AOP 深度剖析与实践
    • Spring 三级缓存机制深度解析
    • 深入 Spring 源码,剖析设计模式的落地实践
    • 探索 Spring 事务的奥秘
    • 深入解析Spring Bean的生命周期管理
    • 解读 Spring Boot 核心知识点
    • Spring Boot 启动优化实战:1分钟到13秒的排查与优化之路
    • Spring Boot自动装配原理及实践
    • 一文快速上手Sharding-JDBC
    • sharding-jdbc如何实现分页查询
    • 基于DynamicDataSource整合分库分表框架Shardingsphere
  • 计算机组成原理

    • 计算机硬件知识小结
    • CPU核心知识点小结
    • 浅谈CPU流水线的艺术
    • 从Java程序员视角聊聊CPU缓存
    • CPU任务调度和伪共享问题小结
    • CPU MESI缓存一致性协议
    • CPU内存管理机制
    • 内存深度解析
    • 磁盘存储原理
    • 详解计算机启动步骤
    • CPU南北桥架构与发展史
    • CPU中断机制与硬件交互详解
  • 操作系统

    • 如何实现一个高性能服务器
    • Linux文件结构与文件权限
    • Linux常见压缩指令小结
    • Linux核心系统调用详解
    • Linux进程管理
    • Linux线程管理
    • 进程与线程深度解析
    • Linux进程间通信机制
    • 零拷贝技术原理与实践
    • CPU缓存一致性问题深度解析
    • IO任务与CPU调度艺术
  • 计算机网络

    • 网卡通信原理详解
    • 网卡数据包处理指南
    • 基于抓包详解TCP协议
  • 编码最佳实践

    • 浅谈现代软件工程TDD最佳实践
    • 浅谈TDD模式下并发程序设计与实现
    • 面向AI编程新范式Trae后端开发环境搭建与实践
    • 基于Vibe Coding的Redis分页查询实现
    • 告别AI无效对话:资深工程师的提示词设计最佳实践
  • 实用技巧与配置

    • Mac常用快捷键与效率插件指南
    • Keynote技术科普短视频制作全攻略
  • 元认知

    • 摩擦感:AI时代的写作自省
    • 从断墨寻径浅谈程序员的元学习能力
    • AI时代专注力培养
    • 如何阅读一本书:技术书籍的读书笔记方法论
  • 开发工具

    • IDEA配置详解与高效使用指南
    • Windows环境下JDK安装与环境变量配置
    • Windows 10 下的 Maven 安装配置教程
  • Nodejs
  • 博客搭建
  • Redis

    • Redis核心知识小结
    • 解锁Redis发布订阅模式
    • 掌握Redis事务
    • Redis主从复制技术
    • Redis的哨兵模式详解
    • 深度剖析Redisson分布式锁
    • 详解redis单线程设计思路
    • 来聊聊Redis所实现的Reactor模型
    • Redis RDB持久化源码深度解析
    • 来聊聊redis的AOF写入
    • 来聊聊Redis持久化AOF管道通信的设计
    • 来聊聊redis集群数据迁移
    • Redis SDS动态字符串深度解析
    • 高效索引的秘密:redis跳表设计与实现
    • 聊聊redis中的字典设计与实现
    • 深入Redis SCAN源码:反向迭代算法的设计与实现
  • MySQL

    • MySQL基础知识点小结
    • 解读MySQL 索引基础
    • MySQL 索引进阶指南
    • 解读MySQL Explain关键字
    • 探秘 MySQL 锁:原理与实践
    • 详解MySQL重做日志redolog
    • 详解undoLog在MySQL MVCC中的运用
    • MySQL二进制日志binlog核心知识点
    • MySQL高效插入数据的最佳实践
    • MySQL分页查询优化指南
    • MySQL流式查询的奥秘与应用解析
    • 来聊聊分库分表
    • 来聊聊大厂常用的分布式ID生成方案
  • ElasticSearch

    • Elasticsearch核心原理与架构设计
    • ES 基础使用指南
    • ElasticSearch如何写入一篇文档
    • 深入剖析Elasticsearch文档读取原理
    • 聊聊ElasticSearch性能调优
    • Spring借助Easy-Es操作ES
  • Netty

    • 一文快速了解高性能网络通信框架Netty
    • Netty网络传输简记
    • 来聊聊Netty的ByteBuf
    • 来聊聊Netty消息发送的那些事
    • 解密Netty高性能之谜:NioEventLoop线程池阻塞分析
    • 详解Netty中的责任链Pipeline如何管理ChannelHandler
    • Netty Reactor模型常见知识点小结
    • Netty如何驾驭TCP流式传输?粘包拆包问题全解
    • Netty解码器源码解析
  • 消息队列

    • 一文快速入门消息队列
    • 消息队列RocketMQ入门指南
    • 基于RocketMQ实现分布式事务
    • RocketMQ容器化最佳实践
    • RocketMQ常见问题与深度解析
    • Kafka快速安装与使用指南
  • Nginx

    • Linux下的nginx安装
    • Nginx基础入门总结
    • Nginx核心指令小结
    • Nginx进程结构与核心模块初探
    • Nginx应用进阶HTTP核心模块配置
    • Nginx缓存及HTTPS配置小记
    • nginx高可用实践简记
    • Nginx性能优化
  • 微服务基础

    • 微服务基础知识小结
    • 分布式事务核心概念小结
    • OpenFeign核心知识小结
    • 微服务组件Gateway核心使用小结
    • 分布式事务Seata实践
    • 用 Docker Compose 完成 Seata 的整合部署
  • Nacos

    • Nacos服务注册原理全解析
    • Nacos服务订阅流程全解析
    • Nacos服务变更推送流程全解析
    • 深入解析SpringCloud负载均衡器Loadbalancer
    • Nacos源码环境搭建与调试指南
  • Seata

    • 深度剖析Seata源码
  • Docker部署

    • 一文快速掌握docker的理念和基本使用
    • 使用docker编排容器
    • 基于docker-compose部署微服务基本环境
    • 基于docker容器化部署微服务
    • Gateway全局异常处理及请求响应监控
    • Docker图形化界面工具Portainer最佳实践
  • Go基础

    • AI时代的Go语言基础语法认知
    • AI时代视角下聊聊Go语言的编译过程
    • 一文快速掌握Go语言切片
    • 来聊聊go语言的hashMap
    • 一文速通go语言类型系统
    • 浅谈Go语言中的面向对象
    • go语言是如何实现协程的
    • 聊聊go语言中的GMP模型
    • 极简的go语言channel入门
    • 聊聊go语言基于epoll的网络并发实现
    • 写给Java开发的Go语言协程实践
  • mini-redis实战

    • 来聊聊我用go手写redis这件事
    • mini-redis如何解析处理客户端请求
    • 实现mini-redis字符串操作
    • 硬核复刻redis底层双向链表核心实现
    • 动手复刻redis之go语言下的字典的设计与落地
    • Go 语言下的 Redis 跳表设计与实现
    • Go 语言版 Redis 有序集合指令复刻探索
    • 基于 Claude Code 复刻 Redis 慢查询指令实践
  • 项目编排

    • Spring脚手架创建简记
    • Spring脚手架集成分页插件
    • Spring脚手架集成校验框架
    • maven父子模块两种搭建方式简记
    • SpringBoot+Vue3前后端快速整合入门
    • 来聊聊Java项目分层规范
  • 场景设计

    • Java实现文件分片上传
    • 基于时间缓存优化浏览器轮询阻塞问题
    • 基于EasyExcel实现高效导出
    • 10亿数据高效插入MySQL最佳方案
    • AI时代不可替代的底层思维:位运算与逻辑运算实战
    • 对账核销场景设计与重构实践
    • 千万级交易流水慢查询综合治理实践
    • 记一次StarRocks源码级排错和既有架构优化实践
    • 基于快照合并修复Seata AT回滚补偿与Flink批攒导致StarRocks数据不一致最佳实践
  • CI/CD

    • 基于NETAPP实现内网穿透
    • 基于Gitee实现Jenkins自动化部署SpringBoot项目
    • Jenkins离线安装部署教程简记
    • 基于Nexus搭建Maven私服基础入门
    • 基于内网的Jenkins整合gitlab综合方案简记
  • 监控方法论

    • SpringBoot集成Prometheus与Grafana监控
    • Java监控度量Micrometer全解析
    • 从 micrometer计量器角度快速上手promQL
    • 硬核安利一个监控告警开源项目Nightingale
  • Spring AI

    • Spring AI Alibaba深度实战:一文掌握智能体开发全流程
    • Spring AI Alibaba实战:JVM监控诊断Arthas Agent的工程化构建与最佳实践
  • 大模型评测

    • M2.7 真能打!我用两个真实场景测了测,结果有点意外
    • Qoder JetBrains插件评测:祖传代码重构与接口优化实战
    • 从一次线上事故到底层算法复刻与监控落地,我用MiniMax M3跑通了完整闭环
  • AI工具链

    • Claude Code 实战指南:从安装配置到企业级开发流程
    • 一次 Claude Code 启动失败的 AI 辅助排查复盘
    • 基于提示词工程与KITE框架的Redis签到功能开发实践
    • Claude Code 记忆管理:CLAUDE.md 最佳实践
    • Claude Code 规则管理:Rules 拆分编排与迭代实践(文末送书)
    • VSCode与Claude Code后端开发环境搭建与AI编程工作流实践
    • AI 写的企业级组件不敢用?我替你验过了
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

sharkchili

计算机禅修者
首页
  • Java基础

    • 一文搞懂Java核心技术
    • Java面向对象知识点大总结,建议收藏
    • 聊聊Java中的异常
    • 聊聊Java中的常用类String
    • 万字长文带你细聊Java注解本质
    • 来聊聊Java的反射机制
    • 深入解析Java泛型的魅力与机制
    • Java集合框架深度解析与面试指南
    • Java常用集合类HashMap深度解析
    • LinkedHashMap源码到面试题的全解析
    • 深入解析CopyOnWriteArrayList的工作机制
    • Java基础IO总结
    • Java三大IO模型小结
    • Java BIO NIO AIO详解
    • Java进阶NIO之IO多路复用详解
    • Java8流式编程入门
    • 一文速通lambda与函数式编程
    • Java8函数式方法引用最佳实践
    • Java异常:从原理到实践
  • Java并发编程

    • Java并发编程基础小结
    • 深入理解Java中的final关键字
    • 浅谈Java并发安全发布技术
    • 浅谈Java并发编程中断的哲学
    • Java线程池知识点小结
    • 浅谈Java线程池中拒绝策略与流控的艺术
    • synchronized关键字使用指南
    • 深入源码解析synchronized关键字
    • 详解JUC包下的锁
    • 详解并发编程中的CAS原子类
    • LongAdder源码分析
    • AQS源码解析
    • 深入剖析Java并发编程中的死锁问题
    • Java并发容器总结
    • 详解Java并发编程volatile关键字
    • 并发编程ThreadLocal必知必会
    • CompletableFuture基础实践小结
    • CompletableFuture异步多任务最佳实践
    • 硬核详解FutureTask设计与实现
    • 线程池大小设置的底层逻辑与场景化方案
    • 来聊一个有趣的限流器RateLimiter
  • JVM相关

    • 从零开始掌握 JVM
    • JVM核心知识点小结
    • JVM指令集概览:基础与应用
    • JVM类加载器深度解析
    • JVM方法区深度解析
    • Java内存模型JMM详解
    • Java对象大小的精确计算方法
    • 逃逸分析在Java中的应用与优化
    • 从零开始理解JVM的JIT编译机制
    • G1垃圾回收器:原理详解与调优指南
    • JVM故障排查实战指南
    • JVM内存问题排错最佳实践
    • JVM内存溢出排查指南
    • 简明的Arthas使用教程
    • 简明的Arthas配置及基础运维教程
    • 基于Arthas Idea的JVM故障排查与指令生成
    • 基于arthas量化监控诊断java应用方法论与实践
    • 深入剖析arthas技术原理
    • 探索JVM的隐秘角落:元空间详解
  • 深入理解Spring框架

    • Spring 核心知识点全面解析
    • Spring核心功能IOC详解
    • Spring AOP 深度剖析与实践
    • Spring 三级缓存机制深度解析
    • 深入 Spring 源码,剖析设计模式的落地实践
    • 探索 Spring 事务的奥秘
    • 深入解析Spring Bean的生命周期管理
    • 解读 Spring Boot 核心知识点
    • Spring Boot 启动优化实战:1分钟到13秒的排查与优化之路
    • Spring Boot自动装配原理及实践
    • 一文快速上手Sharding-JDBC
    • sharding-jdbc如何实现分页查询
    • 基于DynamicDataSource整合分库分表框架Shardingsphere
  • 计算机组成原理

    • 计算机硬件知识小结
    • CPU核心知识点小结
    • 浅谈CPU流水线的艺术
    • 从Java程序员视角聊聊CPU缓存
    • CPU任务调度和伪共享问题小结
    • CPU MESI缓存一致性协议
    • CPU内存管理机制
    • 内存深度解析
    • 磁盘存储原理
    • 详解计算机启动步骤
    • CPU南北桥架构与发展史
    • CPU中断机制与硬件交互详解
  • 操作系统

    • 如何实现一个高性能服务器
    • Linux文件结构与文件权限
    • Linux常见压缩指令小结
    • Linux核心系统调用详解
    • Linux进程管理
    • Linux线程管理
    • 进程与线程深度解析
    • Linux进程间通信机制
    • 零拷贝技术原理与实践
    • CPU缓存一致性问题深度解析
    • IO任务与CPU调度艺术
  • 计算机网络

    • 网卡通信原理详解
    • 网卡数据包处理指南
    • 基于抓包详解TCP协议
  • 编码最佳实践

    • 浅谈现代软件工程TDD最佳实践
    • 浅谈TDD模式下并发程序设计与实现
    • 面向AI编程新范式Trae后端开发环境搭建与实践
    • 基于Vibe Coding的Redis分页查询实现
    • 告别AI无效对话:资深工程师的提示词设计最佳实践
  • 实用技巧与配置

    • Mac常用快捷键与效率插件指南
    • Keynote技术科普短视频制作全攻略
  • 元认知

    • 摩擦感:AI时代的写作自省
    • 从断墨寻径浅谈程序员的元学习能力
    • AI时代专注力培养
    • 如何阅读一本书:技术书籍的读书笔记方法论
  • 开发工具

    • IDEA配置详解与高效使用指南
    • Windows环境下JDK安装与环境变量配置
    • Windows 10 下的 Maven 安装配置教程
  • Nodejs
  • 博客搭建
  • Redis

    • Redis核心知识小结
    • 解锁Redis发布订阅模式
    • 掌握Redis事务
    • Redis主从复制技术
    • Redis的哨兵模式详解
    • 深度剖析Redisson分布式锁
    • 详解redis单线程设计思路
    • 来聊聊Redis所实现的Reactor模型
    • Redis RDB持久化源码深度解析
    • 来聊聊redis的AOF写入
    • 来聊聊Redis持久化AOF管道通信的设计
    • 来聊聊redis集群数据迁移
    • Redis SDS动态字符串深度解析
    • 高效索引的秘密:redis跳表设计与实现
    • 聊聊redis中的字典设计与实现
    • 深入Redis SCAN源码:反向迭代算法的设计与实现
  • MySQL

    • MySQL基础知识点小结
    • 解读MySQL 索引基础
    • MySQL 索引进阶指南
    • 解读MySQL Explain关键字
    • 探秘 MySQL 锁:原理与实践
    • 详解MySQL重做日志redolog
    • 详解undoLog在MySQL MVCC中的运用
    • MySQL二进制日志binlog核心知识点
    • MySQL高效插入数据的最佳实践
    • MySQL分页查询优化指南
    • MySQL流式查询的奥秘与应用解析
    • 来聊聊分库分表
    • 来聊聊大厂常用的分布式ID生成方案
  • ElasticSearch

    • Elasticsearch核心原理与架构设计
    • ES 基础使用指南
    • ElasticSearch如何写入一篇文档
    • 深入剖析Elasticsearch文档读取原理
    • 聊聊ElasticSearch性能调优
    • Spring借助Easy-Es操作ES
  • Netty

    • 一文快速了解高性能网络通信框架Netty
    • Netty网络传输简记
    • 来聊聊Netty的ByteBuf
    • 来聊聊Netty消息发送的那些事
    • 解密Netty高性能之谜:NioEventLoop线程池阻塞分析
    • 详解Netty中的责任链Pipeline如何管理ChannelHandler
    • Netty Reactor模型常见知识点小结
    • Netty如何驾驭TCP流式传输?粘包拆包问题全解
    • Netty解码器源码解析
  • 消息队列

    • 一文快速入门消息队列
    • 消息队列RocketMQ入门指南
    • 基于RocketMQ实现分布式事务
    • RocketMQ容器化最佳实践
    • RocketMQ常见问题与深度解析
    • Kafka快速安装与使用指南
  • Nginx

    • Linux下的nginx安装
    • Nginx基础入门总结
    • Nginx核心指令小结
    • Nginx进程结构与核心模块初探
    • Nginx应用进阶HTTP核心模块配置
    • Nginx缓存及HTTPS配置小记
    • nginx高可用实践简记
    • Nginx性能优化
  • 微服务基础

    • 微服务基础知识小结
    • 分布式事务核心概念小结
    • OpenFeign核心知识小结
    • 微服务组件Gateway核心使用小结
    • 分布式事务Seata实践
    • 用 Docker Compose 完成 Seata 的整合部署
  • Nacos

    • Nacos服务注册原理全解析
    • Nacos服务订阅流程全解析
    • Nacos服务变更推送流程全解析
    • 深入解析SpringCloud负载均衡器Loadbalancer
    • Nacos源码环境搭建与调试指南
  • Seata

    • 深度剖析Seata源码
  • Docker部署

    • 一文快速掌握docker的理念和基本使用
    • 使用docker编排容器
    • 基于docker-compose部署微服务基本环境
    • 基于docker容器化部署微服务
    • Gateway全局异常处理及请求响应监控
    • Docker图形化界面工具Portainer最佳实践
  • Go基础

    • AI时代的Go语言基础语法认知
    • AI时代视角下聊聊Go语言的编译过程
    • 一文快速掌握Go语言切片
    • 来聊聊go语言的hashMap
    • 一文速通go语言类型系统
    • 浅谈Go语言中的面向对象
    • go语言是如何实现协程的
    • 聊聊go语言中的GMP模型
    • 极简的go语言channel入门
    • 聊聊go语言基于epoll的网络并发实现
    • 写给Java开发的Go语言协程实践
  • mini-redis实战

    • 来聊聊我用go手写redis这件事
    • mini-redis如何解析处理客户端请求
    • 实现mini-redis字符串操作
    • 硬核复刻redis底层双向链表核心实现
    • 动手复刻redis之go语言下的字典的设计与落地
    • Go 语言下的 Redis 跳表设计与实现
    • Go 语言版 Redis 有序集合指令复刻探索
    • 基于 Claude Code 复刻 Redis 慢查询指令实践
  • 项目编排

    • Spring脚手架创建简记
    • Spring脚手架集成分页插件
    • Spring脚手架集成校验框架
    • maven父子模块两种搭建方式简记
    • SpringBoot+Vue3前后端快速整合入门
    • 来聊聊Java项目分层规范
  • 场景设计

    • Java实现文件分片上传
    • 基于时间缓存优化浏览器轮询阻塞问题
    • 基于EasyExcel实现高效导出
    • 10亿数据高效插入MySQL最佳方案
    • AI时代不可替代的底层思维:位运算与逻辑运算实战
    • 对账核销场景设计与重构实践
    • 千万级交易流水慢查询综合治理实践
    • 记一次StarRocks源码级排错和既有架构优化实践
    • 基于快照合并修复Seata AT回滚补偿与Flink批攒导致StarRocks数据不一致最佳实践
  • CI/CD

    • 基于NETAPP实现内网穿透
    • 基于Gitee实现Jenkins自动化部署SpringBoot项目
    • Jenkins离线安装部署教程简记
    • 基于Nexus搭建Maven私服基础入门
    • 基于内网的Jenkins整合gitlab综合方案简记
  • 监控方法论

    • SpringBoot集成Prometheus与Grafana监控
    • Java监控度量Micrometer全解析
    • 从 micrometer计量器角度快速上手promQL
    • 硬核安利一个监控告警开源项目Nightingale
  • Spring AI

    • Spring AI Alibaba深度实战:一文掌握智能体开发全流程
    • Spring AI Alibaba实战:JVM监控诊断Arthas Agent的工程化构建与最佳实践
  • 大模型评测

    • M2.7 真能打!我用两个真实场景测了测,结果有点意外
    • Qoder JetBrains插件评测:祖传代码重构与接口优化实战
    • 从一次线上事故到底层算法复刻与监控落地,我用MiniMax M3跑通了完整闭环
  • AI工具链

    • Claude Code 实战指南:从安装配置到企业级开发流程
    • 一次 Claude Code 启动失败的 AI 辅助排查复盘
    • 基于提示词工程与KITE框架的Redis签到功能开发实践
    • Claude Code 记忆管理:CLAUDE.md 最佳实践
    • Claude Code 规则管理:Rules 拆分编排与迭代实践(文末送书)
    • VSCode与Claude Code后端开发环境搭建与AI编程工作流实践
    • AI 写的企业级组件不敢用?我替你验过了
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 项目编排

  • 场景设计

    • Java实现文件分片上传
    • 基于时间缓存优化浏览器轮询阻塞问题
    • 基于EasyExcel实现高效导出
    • 10亿数据高效插入MySQL最佳方案
    • AI时代不可替代的底层思维:位运算与逻辑运算实战
    • 从一次线上事故到底层算法复刻与监控落地,我用MiniMax M3跑通了完整闭环
      • 写在文章开头
      • 准备工作
      • 故障排查:线上Redis SCAN指令引发的性能雪崩
      • 深入底层:复刻Redis SCAN游标算法,理解rev二进制翻转
      • 学以致用:构建轻量级Redis监控面板
      • 小结
  • CI-CD

  • 架构设计

  • 监控方法论

  • 软件工程实践
  • 场景设计
sharkchili
2026-06-04
目录

从一次线上事故到底层算法复刻与监控落地,我用MiniMax M3跑通了完整闭环

# 写在文章开头

MiniMax M3近期发布,按照官方的说法SWE-Bench Pro上Coding评分接近Opus 4.7,1M上下文窗口,国内首个开源的原生多模态 + Agent模型。但benchmark分数归分数,真实工程场景里表现如何?对此,笔者用一个过去遇到的线上故障来检验——一个业务高峰期因隐藏颇深的后台异步任务中的一次Redis SCAN操作引发的事故来测评。

该案例涉及复杂业务链路推理和全局诊断,正好覆盖长链路推理这一评测。同时,为更好地全方位分析MiniMax M3本次升级的实质效果,笔者会在m3完成故障定位和止血后,让其尝试Redis源码(C)到Go的功能复刻、以及前后端redis监控面板搭建,补充异构语言重构和全链路交付三个维度。下面按如下顺序展开: 1.故障排查 2.底层复刻 3.监控落地

# 准备工作

笔者日常使用Claude Code开发,通过cc-switch统一管理模型。以下为MiniMax M3的配置步骤。首先打开cc-switch点击加号添加模型配置:

选择MiniMax M3,将自己的key填充到api key选项中:

最后点击获取模型列表,完成模型的配置,以笔者的为例,直接将主模型设置为MiniMax M3:

配置完成后打开Claude Code,通过对话面板验证当前模型是否生效:

# 故障排查:线上Redis SCAN指令引发的性能雪崩

第一个案例复刻自笔者过去经历过的一次线上故障。为降低理解负担,这里用一个经典的电商场景来还原:该场景是大促期间"超时订单自动取消"的异步任务在跑,同时大量用户正在浏览商品。某一刻,页面大面积超时——已售、库存、浏览、收藏,所有热点数据全加载不出来:

为了评测MiniMax M3对于这类复杂业务链路的排查能力,笔者将系统表象的截图(Claude Code中可通过Ctrl+V粘贴截图,Win系统为Alt+V)和错误描述一并提交:

经过片刻分析,MiniMax M3结合代码上下文中所有涉及Redis操作的链路进行推断,直接定位到根因:SCAN操作导致Redis服务端阻塞,进而引发日常读写操作大面积排队:

为进一步验证其对业务链路的理解程度,笔者要求MiniMax M3用ASCII图绘制故障流转链路。M3梳理出了完整的调用链——从超时订单异步任务触发SCAN,到keyspace遍历阻塞主线程,再到页面请求排队超时——非零散症状罗列,而是一条端到端的因果链:

解决方案方面,M3没有止步于"换一个数据结构",而是从四个维度同时给出建议——Redis层面的数据结构调整、接口层面的原子性优化与降级策略:

针对受影响的业务接口,M3将串行Redis指令优化为一条原子操作,并附上降级策略,以控制极端情况下的影响面:

在工程侧,M3还给出了监控埋点建议和告警阈值参考,例如将SCAN操作的监控红线设在200ms——人类感知停顿的最大延时阈值——超出即触发告警:

在笔者的使用经验中,MiniMax M3有一个区别于多数模型的特点:只要方案沟通对齐,后续代码交付质量就比较稳定,不会出现"思路一致但实现跑偏"的情况。从本次修改的diff来看,M3在代码中体现了其设计理念:

以下为核心降级代码。M3使用并发原子类保障多级缓存操作链路的线程安全,并对缓存一致性的边界条件做了处理。这种对并发细节与边界条件的把控,在实际使用中接近Sonnet 4.6的编码水准:

M3交付的不只是降级代码,还附带了一套测试用例——覆盖了正常降级路径、异常回退路径以及并发竞态场景。降级策略的逻辑覆盖达到100%,用例结构工整。经调试与验收,编译通过、单测全绿:

# 深入底层:复刻Redis SCAN游标算法,理解rev二进制翻转

近期Google技术总监Addy Osmani在《Don't Outsource the Learning》一文中提出了一个值得警惕的现象:让AI写代码而自己跳过学习太容易了——错误被修复,但你的心智模型没有进步。他引用了Anthropic的一项随机实验:同样是学习新库,AI辅助组完成任务的速度与手动组持平,但后续理解测试中得分仅为50%,远低于手动组的67%。有趣的是,AI组内部也存在分化——用AI提问概念问题的工程师得分超过65%,直接复制粘贴代码的则不到40%。Osmani的结论是:工具不会替你学习,区别在于你的使用方式:

回到本次事故。故障排查和降级止血是第一步,但如果不深入SCAN的底层实现,很多细节容易被忽略:SCAN是如何对dict字典进行遍历的?count设为10是否意味着只遍历10个元素?rev二进制翻转在游标推进中到底起什么作用?这些问题靠读文档回答不了。所以笔者换了一种方式:借助MiniMax M3辅助复刻Redis SCAN的核心算法,从源码层面搞清楚SCAN在dict上的扫荡机制。正好笔者的好友sharkchili在维护mini-redis这个开源项目(一个用Go复刻Redis核心功能的学习型项目),笔者直接拉取其代码分支进行复刻。

为了提供充足的上下文,笔者直接将Redis SCAN相关的源码文件通过add-dir传入mini-redis项目:

然后直接键入需求。M3扫描传入的Redis源码后,判断这是一个长任务,自主调用了plan-with-files技能进行任务拆解和规划:

规划完成后,M3主动发起澄清。第一点是确认需求范围,笔者选择复刻SCAN指令:

第二点是算法选型,M3在扫描项目代码时发现,mini-redis复刻了Redis的dict数据结构(而非直接使用Go原生map)。基于这一发现,M3推荐完整复刻Redis的SCAN游标实现——在已有dict的基础上做游标推进,保证了SCAN底层迭代的基调与Redis一致:同样的哈希桶遍历顺序、同样的内存局部性。如果另起一套独立的map做SCAN扫描,不仅增加非必要工作量,内存局部性也无法保证,迭代效率会明显下降:

经过多轮的交互和澄清之后,我们得出如下规划:

方案对齐后,笔者没有急于催促,而是不紧不慢地观察M3的工作流程。它自底向上逐层完成函数实现,先搭好dict遍历的基础框架,再衔接游标推进和参数解析。任务执行完成后,还主动更新了项目的README计划表:

最终交付的代码结构如下。M3生成的SCAN实现覆盖了match、count参数解析以及游标循环逻辑,变量声明和遍历细节与Redis源码的思路一致,没有因为Go语法差异而做不必要的抽象妥协:

通过这次复刻结合代码注释,笔者很直观地看到了SCAN的一些容易踩坑的细节——例如dictScan在扫描时会将实际遍历的桶数量扩大到count × 10,以避免因非命中桶过多导致单次返回数量不足:

其中一个值得注意的细节:Go语言中 ^ 同时承担异或(XOR)和按位取反(NOT)两种语义,而C语言中两者分别是 ^ 和 ~。rev算法涉及大量二进制翻转操作,每一步都必须精确区分"翻转某一位"和"翻转整个二进制数"——语义搞混一步,游标推进就会全部跑偏。大部分模型在做C语言转Go的翻译时,往往会机械地把 ~ 替换为 ^,忽略了上下文中该操作到底是取反还是异或。M3在手写rev算法时没有犯这个错误,逐行操作都区分了两种语义:

基于上述实现质量,编译和单测均一次通过:

# 学以致用:构建轻量级Redis监控面板

完成止血和复盘之后,还需要针对既有架构补上监控能力,确保后续能实时观测Redis运行状态,并在问题复发时快速定位和止血。

这个环节笔者有意识地把既有工程作为上下文传入一个新项目,让M3从零设计并实现一套可视化的Redis监控面板——目的是观察它在前后端全链路架构设计、完整交付能力以及大上下文理解上的表现。

经过简单的问题澄清后,M3给出了监控系统的架构ASCII图。从图中可以看到,它没有一上来就堆组件,而是先理清了数据流向: 1.采集层(埋点上报) 2.缓冲层(环形缓冲区削峰) 3.展示层(HTTP接口+前端面板)

三层之间职责清晰,耦合度低:

代码结构:

尽管是MVP快速原型,底层监控埋点的环形缓冲区数据结构设计值得一看——包括预分配的固定大小数组、互斥锁保护的并发读写,以及缓冲区满时自动覆盖最旧数据:

最终生成的监控面板如下。整体采用深色主题,布局上分成了多个面板:Redis实例的实时状态(内存占用、连接数、QPS)、命令类型的分布统计图、以及慢查询的时间线排列。作为一个从零搭建的MVP,完成度超出了笔者的预期——不是一个粗糙的骨架页面,而是可以直接用于日常观测的可视化面板:

对于Redis服务端,面板也针对慢查询和key分布进行了详尽的输出与展示,可直接用于日常观测:

# 小结

回顾这次完整闭环:从一个线上故障的表象截图出发,MiniMax M3完成了三件事——链路推理与根因定位、Redis SCAN核心算法的跨语言复刻、以及一套前后端联动的监控面板搭建。

针对本次测评的3个case,三个环节分别考验了模型的不同能力:

  1. 故障排查:看的是长链路推理和多维度方案覆盖(数据结构 + 原子性 + 降级 + 监控,一个prompt下覆盖代码、架构、可观测性三个视角)
  2. 底层复刻:看的是跨语言上下文理解和代码实现的精准度(比如识别出项目复刻了dict而非使用Go map,以及Go的 ^ 语义区分对算法的微调)
  3. 监控面板:看的是前后端全链路架构设计和完整交付能力(从采集层到缓冲层再到展示层,包括环形缓冲区的数据结构设计)

M3在这三个维度上的表现稳定,尤其在方案对齐后的代码交付环节,编码水准接近Sonnet 4.6。 但回到Addy Osmani的观点——工具不会替你学习。M3生成了降级代码和rev算法,但如果笔者不自己去读源码、不理解count × 10的设计意图,这些代码只是一次"复制粘贴"的产物。AI是加速器,但底层思维和工程判断力必须由自己完成。

编辑 (opens new window)
AI时代不可替代的底层思维:位运算与逻辑运算实战
基于NETAPP实现内网穿透

← AI时代不可替代的底层思维:位运算与逻辑运算实战 基于NETAPP实现内网穿透→

最近更新
01
深入Redis SCAN源码:反向迭代算法的设计与实现
06-01
02
Go语言常见面试题解析(上)语言基础与核心概念
05-20
03
基于快照合并修复Seata AT回滚补偿与Flink批攒导致StarRocks数据不一致最佳实践
05-20
更多文章>
Theme by Vdoing | Copyright © 2025-2026 Evan Xu | MIT License | 桂ICP备2024034950号 | 桂公网安备45142202000030
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×
×