做司考题的网站dw免费网站模板下载

news/2025/10/3 10:36:13/文章来源:
做司考题的网站,dw免费网站模板下载,每平每家设计家官网,找人做销售网站作者#xff1a;乔二爷#xff0c;来自#xff1a;乔二爷#xff08;ID#xff1a;hellozhouq#xff09;1 前言昨天晚上接到阿里的电面电话#xff0c;过程中就问到了关于缓存相关的问题。虽然以前接触过#xff0c;多多少少了解了一些。但是之前自己并没有好好记录这… 作者乔二爷来自乔二爷IDhellozhouq1 前言昨天晚上接到阿里的电面电话过程中就问到了关于缓存相关的问题。虽然以前接触过多多少少了解了一些。但是之前自己并没有好好记录这些内容在真正面试的时候并没有回答得出来。今天记录一下长长记性。在我们的平常的项目中多多少少都会使用到缓存因为一些数据我们没有必要每次查询的时候都去查询到数据库。特别是高 QPS 的系统每次都去查询数据库对于你的数据库来说将是灾难。今天我们不牵涉多级缓存的知识就把系统使用到的缓存方案不管是一级还是多级的都统称为缓存主要是为了讲述使用缓存的时候可能会遇到的一些问题以及一些解决办法。我们使用缓存时我们的业务系统大概的调用流程如下图当我们查询一条数据时先去查询缓存如果缓存有就直接返回如果没有就去查询数据库然后返回。这种情况下就可能会出现一些现象。2 缓存穿透2.1 什么是缓存穿透正常情况下我们去查询数据都是存在。那么请求去查询一条压根数据库中根本就不存在的数据也就是缓存和数据库都查询不到这条数据但是请求每次都会打到数据库上面去。这种查询不存在数据的现象我们称为缓存穿透。2.2 穿透带来的问题试想一下如果有黑客会对你的系统进行攻击拿一个不存在的id 去查询数据会产生大量的请求到数据库去查询。可能会导致你的数据库由于压力过大而宕掉。2.3 解决办法2.3.1 缓存空值之所以会发生穿透就是因为缓存中没有存储这些空数据的key。从而导致每次查询都到数据库去了。那么我们就可以为这些key 设置的值设置为null 丢到缓存里面去。后面再出现查询这个key 的请求的时候直接返回null ,就不用在到 数据库中去走一圈了。但是别忘了设置过期时间。2.3.2 BloomFilterBloomFilter 类似于一个hase set 用来判断某个元素key是否存在于某个集合中。具体概念这种方式在大数据场景应用比较多比如 Hbase 中使用它去判断数据是否在磁盘上。还有在爬虫场景判断url 是否已经被爬取过。这种方案可以加在第一种方案中在缓存之前在加一层 BloomFilter 在查询的时候先去 BloomFilter 去查询 key 是否存在如果不存在就直接返回存在再走查 缓存 - 查 DB。流程图如下2.4 如何选择针对于一些恶意攻击攻击带过来的大量key 是不存在的那么我们采用第一种方案就会缓存大量不存在 key 的数据。此时我们采用第一种方案就不合适了我们完全可以先对使用第二种方案进行过滤掉这些key。针对这种key 异常多请求重复率比较低的数据我们就没有必要进行缓存使用第二种方案直接过滤掉。对于空数据的key 有限的重复率比较高的我们则可以采用第一种方式进行缓存。3 缓存击穿3.1 什么是击穿缓存击穿是我们可能遇到的第二个使用缓存方案可能遇到的问题。在平常高并发的系统中大量的请求同时查询一个 key 时此时 这个key 正好失效了就会导致大量的请求都打到数据库上面去。这种现象我们成为击穿。3.2 会带来什么问题会造成某一时刻数据库请求量过大压力剧增。3.3 如何解决上面的现象是多个线程同时去查询数据库的这条数据那么我们可以在第一个查询数据的请求上使用一个 互斥锁来锁住它。其他的线程走到这一步拿不到锁就等着等第一个线程查询到了数据然后做缓存。后面的线程进来发现已经有缓存了就直接走缓存。4、缓存雪崩4.1 什么是缓存雪崩缓存的情况是说当某一时刻发生大规模的缓存失效的情况。比如你的缓存服务宕机了会有大量的请求进来直接打到DB上面。结果就是DB 称不住挂掉。4.2 解决办法4.2.1 事前使用集群缓存保证缓存服务的高可用这种方案就是在发生雪崩前对缓存集群实现高可用如果是使用 Redis可以使用 主从哨兵 Redis Cluster 来避免 Redis 全盘崩溃的情况。4.2.2 事中使用 ehcache 本地缓存  Hystrix 限流降级 ,避免 MySQL 被打死的情况发生。使用 ehcache 本地缓存的目的也是考虑在 Redis Cluster 完全不可用的时候ehcache 本地缓存还能够支撑一阵。使用 Hystrix 进行 限流  降级 比如一秒来了5000个请求我们可以设置假设只能有一秒 2000 个请求能通过这个组件那么其他剩余的 3000 请求就会走限流逻辑然后去调用我们自己开发的降级组件降级。比如设置的一些默认值呀之类的。以此来保护最后的 MySQL 不会被大量的请求给打死。4.2.3 事后开启 Redis 持久化机制尽快恢复缓存集群一旦重启就能从磁盘上自动加载数据恢复内存中的数据。防止雪崩方案如下图所示5 热点数据集中失效问题怎么解决我们在设置缓存的时候一般会给缓存设置一个失效时间过了这个时间缓存就失效了。对于一些热点的数据来说当缓存失效以后会存在大量的请求过来然后打到数据库去从而可能导致数据库崩溃的情况。5.1 解决办法5.1.1 设置不同的失效时间为了避免这些热点的数据集中失效那么我们在设置缓存过期时间的时候我们让他们失效的时间错开。比如在一个基础的时间上加上或者减去一个范围内的随机值。5.1.2 互斥锁结合上面的击穿的情况在第一个请求去查询数据库的时候对他加一个互斥锁其余的查询请求都会被阻塞住直到锁被释放从而保护数据库。但是也是由于它会阻塞其他的线程此时系统吞吐量会下降。需要结合实际的业务去考虑是否要这么做。【End】老王给大家准备一份「Java最常见200面试题全解析」助力大家找到更好的工作这份面试题包含的模块Java、JVM 最常见面试题解析Spring、Spring MVC、MyBatis、Hibernate 面试题解析MySQL、Redis 面试题解析RabbitMQ、Kafka、Zookeeper 面试解析微服务 Spring Boot、Spring Cloud 面试解析扫描下面二维码付费阅读关注下方二维码订阅更多精彩内容。转发朋友圈是对我最大的支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/925780.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【大信息技术】ClickHouse配置详细解读

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

做题记录4

CF577B.Modulo Sum 思路 求是否存在一段非空子序列的和模 \(m\) 的值为 \(0\) ,可以先等价地对每一个数字都模 \(m\) 。对于一个长度为 \(n\) 的序列,显然有 \(n\) 段前缀和,并且前缀和模 \(m\) 的值有 \([0, m)\) …

学习unigui【35】dbgrid字段宽度自适应

学习unigui【35】dbgrid字段宽度自适应UniDBGrid1 -> ClientEvents -> ExtEvents [Ext.data.Store[store] ] add store.load fn:function store.load(sender, records, successful, eOpts) {sender.grid.columnM…

网站建设上传宝贝xamp怎样营销能有效获取客户

要用Go获取短信验证码,通常需要连接到一个短信服务提供商的API,并通过该API发送请求来获取验证码。由于不同的短信服务提供商可能具有不同的API和授权方式,我将以一个简单的示例介绍如何使用Go语言来获取短信验证码。 在这个示例中&#xff0…

lucene 8.7.0 版本中的倒排索引、数字、DocValues三种类型的查询性能对比 - 教程

lucene 8.7.0 版本中的倒排索引、数字、DocValues三种类型的查询性能对比 - 教程2025-10-03 10:24 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overfl…

500亿网站建设wordpress首页模块修改

题目描述 现有两门选修课,每门选修课都有一部分学生选修,每个学生都有选修课的成绩,需要你找出同时选修了两门选修课的学生,先按照班级进行划分,班级编号小的先输出,每个班级按照两门选修课成绩和的降序排序…

数哈多应用授权系统如何为Go语言编程开发者给予知识产权保护?

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

数哈多应用授权系统如何为Go语言编程开发者给予知识产权保护?

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

网站开发的公司电话微信h5手机网站

微信公众平台:https://mp.weixin.qq.com/ 第一次需要注册,有账号直接扫扫码登陆即可

2018企业网站优化应该怎么做做外贸主要看什么网站

信号处理函数可以正常返回&#xff0c;也可以调用其他函数返回到程序的主函数中&#xff0c;而不是从处理程序返回。 setjmp/longjmp 使用longjmp可以跳转到setjmp设置的位置 这两个函数原型如下 #include<setjmp.h> int setjmp(jmp_buf env); void longjmp(jmp_buf …

好听的音乐地址

好听的音乐地址https://www.youtube.com/watch?v=6T6Lj4Sdu6o&list=RD6T6Lj4Sdu6o&start_radio=1本博客是博主个人学习时的一些记录,不保证是为原创,个别文章加入了转载的源地址,还有个别文章是汇总网上多…

雁塔区住房和城乡建设局网站中宁网站建设公司

随着家庭娱乐需求日益旺盛&#xff0c;越来越多的家庭消费者和游戏玩家开始追求大屏游戏带来的沉浸感。玩家在玩游戏的时候用大屏能获得更广阔的视野和更出色的视觉包围感&#xff0c;因此用大屏玩游戏已经成为了一种潮流。用酷开系统玩大屏游戏&#xff0c;过瘾又刺激&#xf…

服务器和网站维护太原注册公司网站

目录 一、安装XPath 二、XPath的基础语法 1.选取节点 三、使用XPath匹配数据 1.浏览器审查元素 2.具体实例 四、总结 一、安装XPath 控制台输入指令&#xff1a;pip install lxml 二、XPath的基础语法 XPath是一种在XML文档中查找信息的语言&#xff0c;可以使用它在HTM…

网站域名到期登不上是怎么回事想建书画网站怎么做的

第三章:处理机调度与死锁 处理机调度算法的目标 处理机调度算法的共同目标 资源利用率:CPU的利用率CPU有效工作时间/(CPU有效工作时间CPU空闲等待时间)公平性平衡性策略强制执行 批处理系统的目标 平均周转时间短系统吞吐量高处理机利用率高 分时系统的目标 响应时间快均…

旗讯OCR表格识别精准还原复杂表格,识别还原准确率95%+,还能结构化 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

二手车网站制作软件工程师面试常见问题

一、 MySQL建表&#xff0c;字段需设置为非空&#xff0c;需设置字段默认值。二、 MySQL建表&#xff0c;字段需NULL时&#xff0c;需设置字段默认值&#xff0c;默认值不为NULL。三、 MySQL建表&#xff0c;如果字段等价于外键&#xff0c;应在该字段加索引。四、 MySQL建表&a…

银河麒麟V10服务器桌面SP1、SP2、SP3国防版集采版国防集采版教育版

银河麒麟V10服务器桌面SP1、SP2、SP3国防版集采版国防集采版教育版 下载地址: kylin_gfb.zip 👍

戴尔网站建设规划旅游门户网站有哪些

2023年7月25日至26日&#xff0c;由中国信息通信研究院&#xff08;简称“中国信通院”&#xff09;、中国通信标准化协会主办的以“云领创新&#xff0c;算启新篇”为主题的“2023可信云大会”在北京成功举办。会上公布了多项前瞻领域的评估结果和2023年度最佳实践案例&#x…

上海备案证查询网站查询网站查询系统网站建设公司专业网站费用报价

1、 文档目标 解决分布式部署下其他机器如何连接RLMLicense管理器。 2、 问题场景 分布式部署下QAC要在其他机器上单独运行扫描&#xff0c;必须先连接RLMLicense管理器&#xff0c;如何连接&#xff1f; 3、软硬件环境 1、软件版本&#xff1a;HelixQAC23.04 2、机器环境…

凭祥网站建设php怎么做搭建网站

主题是拥抱开源 拥抱开源&#xff1a;开放是互联终端不断增长的主旨和核心——使技术世界变得越来越复杂&#xff0c;联系越来越紧密。在微软&#xff0c;我们专注于向客户提供任何信息支持&#xff0c;即使在任何设备或者在多个平台上。 未来是开放的&#xff0c;未来的云是开…