news 2026/10/9 10:12:27

java八股,redis篇(缓存三兄弟,双写一致)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
java八股,redis篇(缓存三兄弟,双写一致)

使用场景
缓存穿透:
原因(查询一个空数据,mydql查询不到数据,也不会直接写入缓存,导致每次都访问数据库,可能会宕机)
1.缓存空数据,但是内存消耗高

2.布隆过滤器,使用哈希算法里面存二进制,0和1,初始都为0,但是会有误判,数组越大 误判率会降低,数据不存在直接拦截,存在查询则查redis

缓存击穿:
一个热点key设置过期时间,恰好这个时间,有大量用户访问进来,导致这些并发请求可能会把数据库瞬间压垮
解决方法:
1.互斥锁
2.逻辑过期

缓存雪崩:
同一个时段,有多个key同时过期,或者redis服务宕机,导致大量请求访问数据库
解决方法:
1.设置ttl添加随机值
2.利用redis集群,提高高可用性,比如哨兵模式,集群模式
3.给业务添加多级缓存
4.给缓存业务添加降级限流策略

双写一致
1.先修改数据库,在删除缓存
2.延迟双删,降低脏数据,主从分离,所以要延迟
3.互斥锁
缓存读多写少,读写锁
所以有共享锁,排他锁**(可以保持强一致 但是性能方面不高)**
共享锁,允许其他线程读取数据,但不允许写
排他锁,拒绝其他现成读跟写
mq异步通知

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

C语言在线编译器技术原理与教学实践指南

1. 为什么我坚持不用本地IDE写C语言小实验?去年带某高校嵌入式课程实训时,遇到一个典型场景:三名学生围在一台电脑前调试一个简单的链表反转程序。他们用的是某款主流IDE,但光是配置编译器路径、设置C标准版本、排除Windows路径分…

作者头像 李华
网站建设 2026/10/9 10:11:30

Kimi K3深度测评:长文本之外的真实力,TaoToken统一API通道实测

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/9 10:11:18

驱动开发从入门到实战:内核模块、字符设备与调试技巧全解析

1. 为什么我要写《驱动之路》这本书动笔写这个系列之前,我犹豫了很长时间。市面上关于硬件驱动开发的中文资料并不算少,但真正能让人从零开始、一步步跟着做下来还不掉坑里的内容,说实话,不多。大部分资料要么是芯片原厂的英文数据…

作者头像 李华
网站建设 2026/10/9 10:07:39

Navicat Premium 17 中文版安装教程(2026最新版)

⚠️ 声明:本教程仅供个人学习与研究数据库工具使用,不鼓励商业用途或违反软件许可协议。如经济允许,请支持正版软件。 一、准备工作 1.1 下载安装包 从网盘下载 Navicat Premium 17 安装包: 网盘链接:夸克网盘链接 …

作者头像 李华
网站建设 2026/10/9 10:07:25

LangChain4j 多LLM切换实战:OpenAI断连秒切Ollama本地模型

你正在开发一个 AI 客服,用的 OpenAI 接口,结果某天官方限流、导致线上问答全线超时。救场方案是本地再部署一个 Ollama 小模型兜底。本文就用 LangChain4j 1.19(Java 生态)把这套"主模型 本地备用模型"的切换与自动降…

作者头像 李华