四个交互演示:① 三大问题对比 · ② 布隆过滤器 · ③ 一致性顺序对比 · ④ 一致性方案对比
每栏分别模拟一种问题。蓝色请求从 Client 出发,到达 Cache 后判断 hit / miss。 红色请求 表示打到 DB 的请求(越多越危险)。 切换「无防护 / 有防护」对比效果。
位数组长度 m 和 hash 函数数 k 都可调。点「插入」会用 k 个 hash 函数把对应位置 1; 点「查询」高亮被检查的 k 个位,「全为 1」就判定「可能存在」。 多插入几个元素后再查从未插入过的字符串,会观察到「假阳性」现象。
同一组并发动作,按 4 种顺序排列,看哪种会出现「读到旧值并写入缓存」的不一致。
初始:DB = v_old,Cache 已失效。
写线程 W 想把 DB 更新成 v_new;同时读线程 R 触发缓存 miss。
点击卡片查看每种方案的优缺点、适用场景。
点击上方任一卡片查看详情。