工程原理与选型

从日常工程现象出发,理解背后的机制,对比不同方案的适用条件、成本与取舍。

01

从 ZSet 到 InnoDB:跳表、B+ 树与红黑树的工程取舍

用一个排行榜串起 Redis ZSet、InnoDB 索引和 Java HashMap,比较排序、排名、页访问、哈希冲突与更新成本,解释为什么相似的复杂度会走向不同实现。

数据结构存储RedisZSet跳表MySQLInnoDBB+树HashMap红黑树
02

缓存为什么会命中:从局部性、LRU/LFU 到 Caffeine

从重用距离和访问序列理解缓存命中,复现 LRU 的扫描污染与 LFU 的热点滞后,再拆解 Caffeine 的 W-TinyLFU、频率草图、并发维护和业务接入边界。

数据结构缓存局部性LRULFUCaffeineTinyLFUW-TinyLFUJava
03

缓存一致性:从读写流程到失效、重试与版本栅栏

用六张小流程图和可执行的交错实验,比较更新缓存与删除缓存的顺序,复现旧值回填,解释延迟双删、Outbox、CDC、版本栅栏及写后读分别能保证什么。

缓存一致性RedisMySQLCache AsideOutboxCDC版本栅栏并发
  1. 04哈希的不同用法:哈希表、冲突处理与一致性哈希的工程取舍待深入
  2. 05判断“有没有”:Redis Bitmap、Bloom Filter 与精确集合的选型待深入
  3. 06延迟队列怎样管理时间:堆、时间轮与 ZSet 的工程取舍待深入
  4. 07队列底层为什么不同:数组、链表与环形缓冲区的工程取舍待深入