大家好,我是小米,31 岁,写代码快十年了。如果你问我:
后端面试里,被问得最多、但被答得最烂的问题是什么?
我一定投“缓存”一票。尤其是这道看起来人畜无害的题:
“什么是热点数据?什么是冷数据?哪些数据适合缓存?”
很多同学第一反应是:热点数据访问多,冷数据访问少。这话没错,但也几乎等于没说。
先讲个故事:仓库里的“黄金货架”
我先不讲技术,先讲一个仓库的故事。假设你开了一家大型连锁超市,后面有一个总仓库。
- 仓库空间有限
- 拣货员每天要跑来跑去拿货
- 离门口越近的货架,拿货越快
这时候,你会怎么摆货?答案很简单:
- 每天被拿几万次的矿泉水、泡面、可乐,放在门口
- 一年卖不了几次的高端礼盒,放最里面,甚至放分仓
在这个故事里:
缓存,本质上就是“黄金货架”。不是所有货都配得上黄金货架。
热点数据:缓存才有价值
我们先下一个非常重要的结论: