当前位置: 首页 > news >正文

Redis 面试题(最新版)

🔗 基础与数据结构

1. Redis 与 Memcached 的区别?

- **数据类型**:Memcached 仅支持简单的 K-V;Redis 支持丰富的数据结构(String, Hash, List, Set, ZSet, Stream等)。
- **持久化**:Memcached 不支持;Redis 支持 RDB 和 AOF。
- **集群模式**:Memcached 客户端一致性哈希;Redis 支持原生 Cluster。
- **线程模型**:Memcached 多线程;Redis 6.0+ 之前是单线程,之后引入了多线程IO。

2. Redis 有哪些常用的数据结构?分别有什么应用场景?

String:缓存对象、计数器(INCR)、分布式锁。
Hash:存储对象(如用户信息、商品详情)。
List:简单消息队列、最新消息排行。
Set:去重(如粉丝集合)、共同关注、抽奖。
ZSet:排行榜、带权重的任务队列。
HyperLogLog:海量数据去重统计(UV),允许有误差。
Bitmap:签到打卡、用户在线状态统计。
Stream:可靠的消息队列(支持消费者组)。

💾 持久化与过期策略

3. Redis 的持久化机制有哪些?

RDB(快照):定时生成数据集的时间点快照。**优点**:恢复快,文件小。**缺点**:可能丢失最后一次快照后的数据。
AOF(追加日志):记录每条写命令。**优点**:数据安全,可读性好。**缺点**:文件大,恢复慢。
混合持久化:Redis 4.0+ 引入,结合两者优点(AOF中包含RDB格式的快照)。

4. Redis 的过期键删除策略是什么?

惰性删除:访问键时检查是否过期,过期则删除。
定期删除:周期性随机检查一部分数据库,删除过期键。
注:内存淘汰策略(如 LRU, LFU)是在内存不足时触发的,与过期删除策略不同。

🔐 高并发实战(必背三板斧)

5. 如何解决缓存穿透、缓存击穿、缓存雪崩?

缓存穿透(查不存在的数据):
布隆过滤器:拦截不存在的 key。
缓存空对象:查库无结果也缓存空值(设置短TTL)。
缓存击穿(热点 key 过期):
互斥锁:只允许一个线程重建缓存,其他线程等待。
逻辑过期:不设置物理TTL,Value中存过期时间,后台异步更新。
缓存雪崩(大量 key 同时过期/Redis 宕机):
随机 TTL:给过期时间加随机值,错峰过期。
高可用:搭建 Redis Cluster 或 哨兵模式。
限流降级:Hystrix/Sentinel 熔断,保护数据库。

6. 如何保证缓存与数据库的双写一致性?

最佳实践(Cache Aside Pattern):
读:先读缓存,命中返回;未命中读 DB,写入缓存。
写:先更新 DB,再删除缓存(**不是更新缓存**)。
进阶方案:
延迟双删:先删缓存 -> 更新 DB -> 延时 -> 再删缓存(解决更新期间的脏读)。
异步监听:通过 Canal 监听 Binlog,自动删除/更新缓存。

 🔒 分布式锁与集群

7. 如何实现分布式锁?需要注意哪些问题?

基本实现**:`SET key value NX PX 30000`。
- `NX`:键不存在才设置。
- `PX`:设置过期时间(防死锁)。
- **核心问题**:
- **误删**:解锁时需校验 Value(线程ID),且判断+删除操作必须用 Lua 脚本保证原子性。
- **锁过期**:业务未执行完锁就过期了。**解决方案**:Redisson 的看门狗(Watch Dog)机制,自动续期。
- **集群安全**:Redlock 算法(向半数以上节点申请锁),但争议较大,一般单机或主从+哨兵配合过期时间已足够。

8. Redis 主从复制与哨兵机制?

- **主从复制**:全量同步 + 增量同步(PSYNC)。保证数据冗余。
- **哨兵(Sentinel)**:监控主从节点状态,自动故障转移(主挂了,从变主)。

9. Redis Cluster 集群原理?

- **分片**:16384 个槽(slot),每个节点负责一部分槽。
- **寻址**:`CRC16(key) % 16384`。
- **去中心化**:节点间通过 Gossip 协议通信。
- **客户端**:Smart Client 或 重定向(MOVED/ASK)。

---

⚙️ 性能优化与新特性

10. Redis 为什么这么快?

内存存储:数据在内存中。
单线程(早期):避免线程切换和锁竞争(非阻塞IO多路复用)。
多线程 IO(Redis 6.0+)**:网络IO读写多线程,命令执行仍单线程,进一步提升吞吐量。

11. 什么是缓存预热和缓存热备?

缓存预热:系统启动前,将热点数据加载到 Redis,避免冷启动直接打爆DB。
缓存热备:主从架构,保证高可用。

12. 什么是缓存降级?

当缓存失效或流量过大时,直接访问数据库或返回默认值,保证核心服务可用。

 

http://www.jsqmd.com/news/522117/

相关文章:

  • 上海修表地址汇总|2026高端奢华腕表维修科普,六城正规门店全攻略(含故障解析) - 时光修表匠
  • 还有哪些招聘网站比较好?2026靠谱平台热搜榜单 - 博客万
  • 2026年选制袋机看这里,半自动、来图定制和培训服务靠谱吗 - myqiye
  • 北京高端腕表洗油推荐:从百达翡丽到欧米茄的科学养护与品牌专属方案 - 时光修表匠
  • 企业CRM选型必看:8款主流系统AI、SFA、API对接能力横向对比 - jfjfkk-
  • 省钱达人必备!山东一卡通线上回收技巧分享 - 团团收购物卡回收
  • 2026年探讨惠州比较好的电声元器件品牌商,排名情况怎样 - 工业设备
  • 2026年江苏口碑好的取得压力容器制造许可证公司推荐,专业服务全解析 - myqiye
  • 题解:洛谷 P1661 扩散
  • 2026年地标发光字厂家推荐:郑州唯美标识设计制作有限公司,城市地标字/地标立体字/地标迷你发光字厂家精选 - 品牌推荐官
  • 盘点编织袋自动切缝机品牌,哪家口碑好且价格合理? - mypinpai
  • 电声元器件厂商哪家性价比高,在惠州地区能找到吗? - mypinpai
  • 2026CRM系统排行榜:10大主流品牌全链路能力深度横评 - jfjfkk-
  • 贵州钢丝网骨架管哪家好?5大源头厂家推荐及工程适配方案 - 深度智识库
  • 线上回收全攻略:如何把万爱通礼品卡发挥价值! - 团团收购物卡回收
  • 2026年电声元器件厂商推荐,好用的品牌大盘点 - 工业品牌热点
  • 2026年船舶监控相机厂家推荐:常州市佐安电器有限公司,海事监控相机/阻尼摄像仪/防爆拾音器厂家精选 - 品牌推荐官
  • 防脱头皮精华推荐,强根健发,重塑自信 - 博客万
  • 2026年AR钢化膜厂最新推荐榜单:高端消费电子防护领域技术引领者深度测评 - 博客湾
  • 中老年驼奶粉十大品牌盘点,2026适合长辈的营养品牌汇总 - 博客万
  • 上海修表地址怎么选?从百达翡丽到欧米茄,高端腕表维修的专业标准与北上广深杭宁六城服务网络深度解析 - 时光修表匠
  • navicat查询历史执行语句
  • kafka3.9集群部署
  • 参考文档名称 - a
  • 上门收酒怕信息外传?京城亚南酒业:全程匿名交易,隐私全程兜底 - 品牌排行榜单
  • VSCode+GitHub新手必看:5分钟搞定代码上传(附.gitignore配置技巧)
  • 支付宝立减金回收指南:领取立减金,线上回收超简单! - 团团收购物卡回收
  • NetApp NVME SSD 盘的学习笔记
  • 北京洗油推荐:从百达翡丽到欧米茄,高端腕表机芯养护的周期、费用与北上广深杭宁六城服务深度解析 - 时光修表匠
  • 网眼袋圆织机价格受哪些因素影响,大概多少钱? - 工业设备