Redis 缓存实战与常见问题
2025年12月2日大约 1 分钟
Redis 缓存实战与常见问题
Redis 作为高性能的 Key-Value 数据库,是提升系统并发能力的利器。
1. 常用数据结构与场景
- String: 缓存用户信息、Session、验证码。
- Hash: 存储对象,如商品详情。
- List: 消息队列、最新文章列表。
- Set: 共同好友、抽奖去重。
- ZSet: 排行榜(如游戏积分榜、热搜)。
2. 缓存三大问题
缓存穿透
- 现象: 查询不存在的数据,请求直接打到数据库。
- 解决:
- 缓存空对象(设置过期时间)。
- 使用布隆过滤器(Bloom Filter)。
缓存击穿
- 现象: 热点 Key 过期瞬间,大量请求打到数据库。
- 解决:
- 设置热点数据永不过期。
- 加互斥锁(Mutex Lock)。
缓存雪崩
- 现象: 大量 Key 同时过期,或 Redis 宕机。
- 解决:
- Key 的过期时间加上随机值。
- 搭建 Redis 集群(Sentinel 或 Cluster)。
- 服务降级与限流。
3. Redis 持久化
- RDB (快照): 指定时间间隔保存数据集,恢复快,但可能丢失数据。
- AOF (追加文件): 记录每次写操作,数据更安全,但文件体积大。
- 混合持久化: 结合两者优点(Redis 4.0+)。
4. 结语
用好 Redis 不仅是会调 API,更要理解其底层原理和应对极端场景的策略。
