REDIS · 缓存与数据结构

Redis:性能的加速器
现代系统的"第二数据库"

Redis 是内存数据存储的标杆:微秒级延迟、丰富的数据类型、持久化与高可用,是缓存、会话、排行榜、分布式锁的首选。本讲从核心数据结构到缓存策略与高可用,帮你把 Redis 用得又快又稳。

10万+QPS 级别吞吐
9核心数据结构
100相比磁盘访问提速
PAIN POINTS

不会用 Redis,性能问题反复出现

🐌

数据库天天被打爆

热点数据没缓存,每次请求都打数据库,QPS 一高就超时、报错。

💥

缓存雪崩、击穿、穿透

缓存同时失效、热点 key 被击穿、恶意请求穿透,系统说崩就崩。

🔄

缓存和数据库不一致

先更新缓存还是先更新库?并发下数据对不上,用户看到旧数据。

FEATURES

Redis 的核心能力

内存高速

纯内存操作微秒级响应,是数据库访问的百倍提速。

🧱

丰富类型

String/Hash/List/Set/ZSet 等 9 种类型,覆盖绝大多数场景。

🏆

排行榜

ZSet 有序集合实现榜单、热点、延迟队列,一行搞定。

🔐

分布式锁

SETNX 实现分布式锁,配合 Lua 脚本保证原子性。

💾

持久化

RDB 快照 + AOF 日志,重启不丢数据,兼顾性能与安全。

🛡️

高可用

主从复制 + Sentinel 哨兵 + Cluster 集群,生产级保障。

CACHE

缓存三大难点的对策

01

缓存雪崩

大量 key 同一时间过期导致集体穿透。对策:过期时间加随机抖动、多级缓存、热点 key 永不过期 + 逻辑过期。

02

缓存击穿

单个热点 key 过期瞬间高并发打到数据库。对策:互斥锁重建、逻辑过期。

03

缓存穿透

查询不存在的数据绕开缓存直打数据库。对策:缓存空值、布隆过滤器拦截。

04

双写一致性

推荐"先更新数据库,再删缓存",配合延迟双删与消息队列补偿,把不一致窗口降到最低。

USE CASES

Redis 用在哪

🛒

商品与热点缓存

商品详情、首页数据缓存,扛住大促峰值流量。

👤

会话与登录态

Session 集中存储,多实例共享登录态,支持水平扩展。

🏆

排行榜与计数

点赞数、播放量、排行榜,原子自增 + ZSet 实时更新。

🎯

分布式锁与限流

秒杀防超卖、接口限流、分布式任务互斥,保并发安全。

系统扛不住流量,先看缓存层

我们提供 Redis 架构设计与性能调优,缓存策略、高可用一次规划到位。

FAQ

Redis 高频问答

Redis 是内存缓存/辅助存储,MySQL 是持久化主库。典型用法:读多写少、热点数据放 Redis,Redis 未命中再查 MySQL 并回填。
默认可能丢(RDB 按策略快照)。开启 AOF(每写/每秒刷盘)可把丢失窗口降到最低;纯缓存场景可接受少量丢失,业务数据必须落库。
穿透=查不存在的数据直打库;击穿=热点 key 过期瞬间被高并发打爆;雪崩=大量 key 同时过期导致整体打库。三者对策不同,是 Redis 面试与实战高频考点。
需要强一致性、大量范围查询、超大数据集(超出内存)、复杂事务与关联查询的场景,Redis 不擅长,交给 MySQL/ES 更合适。
内存操作 + IO 多路复用 + 单线程避免锁竞争与上下文切换,纯内存访问本身极快;但要注意避免大 key 与慢命令阻塞主线程。
数据量/并发超单机时用 Redis Cluster(数据分片 + 高可用);中小规模用主从 + Sentinel 哨兵即可。腾讯云/阿里云等托管 Redis 更省心。

性能优化,从缓存开始

编程新知提供 Redis 架构设计、缓存治理与性能优化服务,让系统又快又稳。