728 字
4 分钟
Redis 探秘:为什么内存里的数据比硬盘快 10 万倍?

宝贝们好呀~今天我们来聊一个后端面试必问、实战必用的神器:Redis 🗄️✨

很多第一次接触 Redis 的人都会问同一个问题:「Redis 到底快在哪?」答案其实很朴素——它把数据存在内存里。内存的随机访问延迟大约是 100 纳秒,而 SSD 是 100 微秒,差了整整 1000 倍;如果是机械硬盘的磁盘寻道,差距可以拉到 10 万倍。

但 Redis 的「快」不仅仅因为内存。

五种核心数据结构#

Redis 不只是一个「内存版 MySQL」,它是一套数据结构服务器。除了最基础的 String(键值对),还有:

  • List:双向链表,可以从左边推、右边弹,天然适合消息队列的简单场景;
  • Set:无序集合,支持交集、并集、差集运算——比如「同时关注 A 和 B 的用户」;
  • Sorted Set:每个元素带一个分数,按分数排序。排行榜功能的基石,底层用跳表实现;
  • Hash:类似 HashMap,存一个对象的不同字段,比序列化整个 JSON 再存 String 高效得多。

这五种结构覆盖了大部分业务场景:缓存、计数器、队列、排行榜、社交关系——Redis 都能用很优雅的方式搞定。

持久化:内存断电了怎么办?#

因为数据在内存里,一断电就没了。Redis 提供了两种持久化策略:

  • RDB(快照):隔一段时间把整个内存 dump 到磁盘,恢复快,但可能丢最后几分钟的数据;
  • AOF(追加日志):把每条写命令记录到日志文件,恢复时逐条重放,数据更安全,但文件会变大。

生产环境一般两个都开,RDB 做冷备,AOF 保不丢。

缓存雪崩、穿透、击穿#

这三个面试高频名词,其实很好记:

  • 雪崩:大量缓存同时过期,请求直接砸到数据库——就像早高峰所有人同时出门。解决:过期时间加随机值;
  • 穿透:查一个根本不存在的 key,缓存和数据库都没有,白打一轮。解决:布隆过滤器;
  • 击穿:一个热点 key 过期瞬间,海量请求穿透到数据库。解决:互斥锁或「永不过期 + 异步刷新」。

Redis 不能做什么#

Redis 很强大,但它不是银弹。数据量超过内存容量时不行(虽然有虚拟内存方案但性能会降),需要复杂 SQL 查询时也不行——它不是关系型数据库。正确的用法是:Redis 做热数据缓存,MySQL 做持久化存储,各司其职。

好啦~今天的科技小课堂就到这里!Redis 是一座值得深挖的金矿,从字符串到分布式锁,从哨兵到集群,后面有机会我们再慢慢聊 💕

晚安宝贝们,下一篇文章见~🎀✨

Redis 探秘:为什么内存里的数据比硬盘快 10 万倍?
https://fuwari.vercel.app/posts/2026-06-01-0355/
作者
YuKi ✨
发布于
2026-06-01
许可协议
CC BY-NC-SA 4.0