news 2026/5/12 16:13:38

Redis拷打第一讲

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Redis拷打第一讲

题1:讲讲缓存穿透以及解决方案

概念
缓存穿透是指查询一个一定不存在的Key,导致缓存未命中,每次请求都打到数据库,可能压垮数据库。

解决方案

  1. 缓存空值
    • 第一次查询数据库发现不存在时,在缓存中存空值,并设置过期时间
    • 防止重复查询,减轻数据库压力
  2. 布隆过滤器
    • 插入Key前先通过布隆过滤器判断Key是否可能存在
    • 不存在则直接返回,不访问数据库

题2:讲讲布隆过滤器是什么,解决了什么问题

解决问题

  • 防止缓存穿透,拦截不存在Key的请求

底层原理

  1. 初始化一个大的二进制数组(全0)
  2. 插入Key时,经过多次哈希(例如3次),每次对数组长度取余 → 得到数组下标
  3. 将三个下标对应位置置1
  4. 查询Key时,同样哈希,检查三个位置:
    • 都为1 → Key可能存在
    • 任意为0 → Key一定不存在

误判原因

  • 不同key哈希到数组同一位置,导致未存key被误判为存在

误判率控制

  • 调整数组长度和哈希函数数量
  • 一般设置 ≤5%,可满足大多数项目需求

题3:讲讲缓存击穿是什么,与穿透的区别以及解决方案

概念

  • Key存在,但刚好过期时,高并发访问同一Key,缓存未命中,大量请求打数据库,可能压垮数据库

区别于缓存穿透
穿透 :查询一个一定不存在的Key
击穿 :查询存在的Key,但恰好过期

解决方案

  1. 互斥锁 / 分布式锁
    • 第一个访问过期Key的线程加锁访问数据库并刷新缓存
    • 其他线程等待或重试,保证数据库压力不被瞬时放大
    • 适用于强一致得场景
  2. 逻辑过期
    • 缓存存入时不设置过期时间
    • 查询时判断是否过期
      • 过期 → 异步线程刷新缓存
      • 当前线程直接返回旧值
    • 适用于高并发场景,但可能返回旧值

题4:讲讲缓存雪崩是什么以及解决方案

概念

  • 大量Key在同一时间过期,高并发请求同时到来,缓存未命中,大量请求直接打到数据库,可能压垮数据库

解决方案

  1. TTL随机化
    • 在原有过期时间上随机加几分钟,避免大批Key同时过期
  2. 缓存预热
    • 定时将热点Key提前加载到缓存
    • 避免冷启动阶段请求打数据库
  3. 多级缓存
    • 本地缓存 + Redis分布式缓存 + 数据库
    • 即使Redis部分失效,本地缓存仍可拦截部分请求,降低瞬时压力

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/12 16:13:36

Raw Accel鼠标加速工具:5个步骤打造你的专属精准操控体验

Raw Accel鼠标加速工具:5个步骤打造你的专属精准操控体验 【免费下载链接】rawaccel kernel mode mouse accel 项目地址: https://gitcode.com/gh_mirrors/ra/rawaccel 你是否曾在游戏中需要快速转身却发现鼠标移动距离不够?是否在精细的设计工作…

作者头像 李华
网站建设 2026/5/12 16:08:46

【实战】利用AXI DMA Scatter/Gather模式实现FPGA与处理器间高效数据流传输

1. AXI DMA Scatter/Gather模式的核心价值 在FPGA与处理器协同工作的场景中,数据搬运效率往往是系统性能的瓶颈。传统Simple模式就像快递员每次只能携带一个包裹送货,而Scatter/Gather模式则像是配备了智能调度系统的物流车队——它能同时规划多条运输路…

作者头像 李华
网站建设 2026/5/12 16:07:11

轻量级自动化节点服务OpenClaw:微内核插件化架构与实战部署

1. 项目概述:一个轻量级、可扩展的自动化节点服务最近在折腾一些自动化任务,比如定时爬取数据、处理文件、调用API,发现很多现成的方案要么太重,要么不够灵活。直到我遇到了heypinchy/openclaw-node这个项目,它给我的感…

作者头像 李华
网站建设 2026/5/12 16:05:12

别再死记硬背公式了!用一张图彻底搞懂TensorFlow的tf.nn.depth_to_space

用视觉化思维彻底掌握TensorFlow的深度重组操作 当你第一次在TensorFlow文档中看到tf.nn.depth_to_space这个操作时,是否被那些抽象的维度变换描述弄得一头雾水?作为计算机视觉和图像超分辨率领域的关键操作,depth_to_space实际上可以通过一…

作者头像 李华
网站建设 2026/5/12 16:04:32

别光仿真了!聊聊JK触发器分频在Arduino/STM32实际电路中的那些坑

别光仿真了!聊聊JK触发器分频在Arduino/STM32实际电路中的那些坑 数字电路的仿真和实际搭建之间,往往隔着一道看不见的鸿沟。很多工程师在Multisim里把JK触发器分频电路跑得风生水起,波形漂亮得能当教科书插图,可一旦换成真实的74…

作者头像 李华