Redis 在项目中解决的核心问题(面试完整版・可直接背诵)

发布时间:2026/6/3 20:54:17

Redis 在项目中解决的核心问题(面试完整版・可直接背诵) Redis 是高性能的内存数据库核心是利用内存读写快、多数据结构、原子操作、过期策略、发布订阅等特性解决传统 MySQL 无法高效处理的性能与架构问题。下面按业务场景 解决什么问题 原理详细拆解。一、核心定位一句话Redis 主要用来扛高并发、降数据库压力、提升接口响应速度、实现分布式架构能力。二、Redis 解决的 8 大类核心问题高频必背1. 解决热点数据查询慢、数据库压力大→ 缓存问题背景MySQL 磁盘读写并发高时查询慢大量相同请求频繁打 DB数据库 CPU/IO 飙升接口超时。Redis 解决方案将热点数据、高频查询、很少变更的数据放入 Redis 缓存商品详情、首页 Banner、配置信息、字典数据、省市区用户基础信息、权限菜单、接口结果缓存缓存流程查询先查 Redis → 命中直接返回 → 未命中查 MySQL → 写入 Redis → 返回解决的问题减少 DB 查询次数保护数据库内存读取接口响应毫秒级提升系统并发承载能力考点缓存三大问题缓存穿透、缓存击穿、缓存雪崩Redis 高频面试题2. 解决分布式环境下会话共享问题→ 分布式 Session问题背景微服务多台 Tomcat用户登录 Session 存在单机切换服务就需要重新登录。解决方案把 Session 存入 Redis所有服务共享同一份登录信息实现单点登录 SSO。3. 解决高并发下接口限流、防刷→ 限流计数器问题背景爬虫、恶意请求、秒杀瞬间大量请求打垮服务。解决方案利用 Redis原子自增 过期时间实现限流接口 1 分钟最多访问 100 次IP 黑名单、高频访问拦截常用方案滑动窗口、令牌桶、漏桶4. 解决秒杀 / 抢购超卖问题→ 分布式锁 库存扣减问题背景多线程并发扣减 MySQL 库存不加锁会出现超卖、数据不一致。解决方案Redis 分布式锁SETNX / Redlock / Redisson保证同一商品同一时间只有一个请求扣库存预存库存到 Redis先扣缓存再落库削峰、防超卖5. 解决分布式唯一 ID 生成→ 自增 ID问题背景分布式服务下数据库自增 ID 无法全局唯一雪花算法复杂。解决方案RedisINCR原子自增生成全局唯一有序 ID适合订单号、流水号。6. 解决异步、解耦、削峰→ 消息队列List / Stream问题背景同步调用耗时高高峰期流量打垮下游服务。解决方案用 Redis List 模拟简单 MQ订单创建后发送消息到 Redis消费者异步处理短信、通知、日志高峰期缓存请求削峰填谷保护下游服务复杂业务用 RabbitMQ/RocketMQ简单场景用 Redis 足够7. 解决排行榜、热度排序→ ZSet 有序集合问题背景MySQL 复杂排序效率极低大数据量无法实时排序。解决方案Redis ZSet有序集合天然支持商品销量榜、直播间在线榜、文章阅读排行榜、积分排名支持实时更新、快速取 TopN8. 解决重复提交、幂等性→ 防重校验问题背景用户重复点击、网络重试导致重复下单、重复扣款。解决方案将 ** 唯一请求标识订单号 / Token** 存入 Redis设置过期时间请求前先判断是否存在实现接口幂等。9. 解决购物车临时存储→ Hash 结构问题背景购物车频繁增删改查频繁操作 DB 性能差。解决方案Redis Hash 存储用户 ID → 商品 ID: 数量高性能读写购物车。10. 解决地理位置计算→ Geo 结构问题背景附近门店、附近骑手、附近用户MySQL 计算距离效率极低。解决方案Redis Geo 存储经纬度快速实现附近多少公里查询。三、Redis 核心数据结构对应解决的问题背诵表表格数据结构解决什么问题String缓存、计数器、分布式锁、唯一 ID、限流Hash购物车、用户详情、对象存储List简单消息队列、栈、队列Set去重、交集、好友推荐、标签ZSet排行榜、延迟队列、权重排序BitMap签到统计、布隆过滤器Geo附近的人、距离计算Stream可靠消息队列替代 List四、Redis 优点为什么用 Redis速度极快内存操作单机能扛 10w QPS多数据结构String/Hash/List/Set/ZSet 覆盖绝大多数场景原子操作并发安全无需自己加锁过期策略自动清理冷数据持久化RDB/AOF 防止宕机丢数据集群高可用主从、哨兵、集群模式无单点故障五、Redis 面试高频简答题满分答案1. Redis 主要解决什么问题答主要解决高并发场景下数据库压力大、查询慢的问题同时提供分布式锁、限流、排行榜、消息队列、分布式 Session 等架构能力提升系统性能与稳定性。2. 为什么 Redis 速度快答1. 内存操作2. IO 多路复用3. 单线程避免上下文切换4. 数据结构简单高效。3. Redis 和 MQ 区别答Redis 适合轻量、简单异步场景专业 MQ 支持高可靠、死信、重试、堆积适合复杂业务。4. 分布式锁为什么用 Redis答Redis 原子操作、性能高、自动过期、部署简单适合实现分布式锁解决并发超卖问题。5. 缓存雪崩、击穿、穿透分别怎么解决雪崩大量 key 同时过期 → 过期时间加随机值、集群、多级缓存击穿热点 key 过期 → 互斥锁、永不过期穿透查不存在数据频繁打 DB → 布隆过滤器、缓存空值六、一句话终极背诵面试口述版Redis 是高性能内存数据库主要用来做缓存减轻数据库压力提升接口响应速度同时利用多数据结构实现分布式锁、限流、排行榜、消息队列、购物车、幂等控制等功能是互联网项目扛高并发的核心中间件。

相关新闻