缓存的第一性原理:为什么需要Redis?
引言 在开始学习Redis之前,我们先不谈具体的命令和用法,而是回到原点思考一个问题:为什么我们需要Redis? 这不是一个简单的问题。如果只是回答"因为它快"或"因为大家都在用",那就失去了深入理解的机会。让我们从第一性原理出发,理解缓存的本质,以及Redis在现代架构中的真正价值。 一、存储的时空矛盾 1.1 计算机存储的金字塔 计算机系统中存在一个永恒的矛盾:速度快的存储容量小且昂贵,容量大的存储速度慢且廉价。 让我们看看存储层次结构(从快到慢): CPU寄存器 ← 1ns ← 几KB ← 最快最贵 L1 Cache ← 1-2ns ← 几十KB ← L2 Cache ← 4-10ns ← 几百KB ← L3 Cache ← 20-40ns ← 几MB ← 内存(RAM) ← 100ns ← 几GB ← Redis在这里 SSD硬盘 ← 50-150μs ← 几百GB ← 机械硬盘 ← 5-10ms ← 几TB ← 网络存储 ← >10ms ← 无限大 ← 数据库在这里 关键观察: CPU寄存器访问需要 1纳秒 内存访问需要 100纳秒(慢100倍) SSD访问需要 100微秒(慢1000倍) 机械硬盘访问需要 10毫秒(慢100,000倍) 网络数据库访问需要 >10毫秒(慢100,000倍以上) 1.2 真实世界的类比 如果把CPU访问寄存器比作1秒,那么: ...