网站建设化学图片哪些网站需要备案
web/
2025/10/3 4:58:49/
文章来源:
网站建设化学图片,哪些网站需要备案,网站建设怎么找客户资源,asp.net网站打不开html页面1. 为什么要用缓存#xff1f;
用缓存#xff0c;主要有两个用途#xff1a;高性能、高并发。
高性能
假设这么个场景#xff0c;你有个操作#xff0c;一个请求过来#xff0c;吭哧吭哧你各种乱七八糟操作 MySQL#xff0c;半天查出来一个结果#xff0c;耗时 600m…1. 为什么要用缓存
用缓存主要有两个用途高性能、高并发。
高性能
假设这么个场景你有个操作一个请求过来吭哧吭哧你各种乱七八糟操作 MySQL半天查出来一个结果耗时 600ms。但是这个结果可能接下来几个小时都不会变了或者变了也可以不用立即反馈给用户。那么此时咋办缓存啊折腾 600ms 查出来的结果扔缓存里一个 Key 对应一个 Value下次再有人查别走 MySQL 折腾 600ms 了直接从缓存里通过一个 Key 查出来一个 Value2ms 搞定。性能提升 300 倍。就是说对于一些需要复杂操作耗时查出来的结果且确定后面不怎么变化但是有很多读请求那么直接将查询出来的结果放在缓存中后面直接读缓存就好。
高并发
MySQL这么重的数据库压根儿设计不是让你玩儿高并发的虽然也可以玩儿但是天然支持不好。MySQL 单机支撑到2000QPS(每秒查询率)也开始容易报警了。所以要是你有个系统高峰期一秒钟过来的请求有 1 万那一个 mysql 单机绝对会死掉。你这个时候就只能上缓存把很多数据放缓存别放 mysql。缓存功能简单说白了就是Key-Value式操作单机支撑的并发量轻松一秒几万十几万支撑高并发 so easy。单机承载并发量是 MySQL单机的几十倍。 缓存是走内存的内存天然就支撑高并发。 2. 用了缓存之后会有什么不良后果
常见的缓存问题有以下几个 缓存与数据库双写不一致缓存血崩、缓存穿透、缓存击穿缓存并发竞争 缓存血崩、缓存穿透、缓存击穿知识铺垫 缓存雪崩(Cache Avalanche) 对于系统 A假设每天高峰期每秒 5000 个请求本来缓存在高峰期可以扛住每秒 4000 个请求但是缓存机器意外发生了全盘宕机。缓存挂了此时 1 秒 5000 个请求全部落数据库数据库必然扛不住它会报一下警然后就挂了。此时如果没有采用什么特别的方案来处理这个故障DBA 很着急重启数据库但是数据库立马又被新的流量给打死了。 这就是缓存雪崩。 缓存穿透(Cache Penetration) 对于系统 A假设一秒 5000 个请求结果其中 4000 个请求是黑客发出的恶意攻击。黑客发出的那 4000 个攻击缓存中查不到每次你去数据库里查也查不到。举个栗子。数据库 id 是从 1 开始的结果黑客发过来的请求 id 全部都是负数。这样的话缓存中不会有请求每次都“视缓存于无物”直接查询数据库。这种恶意攻击场景的缓存穿透就会直接把数据库给打死。 缓存击穿(Hotspot Invalid) 缓存击穿就是说某个 key 非常热点访问非常频繁处于集中式高并发访问的情况当这个 key 在失效的瞬间大量的请求就击穿了缓存直接请求数据库就像是在一道屏障上凿开了一个洞。解决方式也很简单可以将热点数据设置为永远不过期或者基于 redis or zookeeper 实现互斥锁等待第一个请求构建完缓存之后再释放锁进而其它请求才能通过该 key 访问数据。 3. 为啥Redis单线程模型也能效率这么高
纯内存操作核心是基于非阻塞的IO多路复用机制C语言实现一般来说C语言实现的程序距离操作系统更新执行速度相对会更快单线程反而避免了多线程的频繁上下文切换的问题预防了多线程可能产生的竞争问题。
4. redis 的并发竞争问题是什么如何解决这个问题了解 redis 事务的 CAS 方案吗 某个时刻多个系统实例都去更新某个 key。可以基于 zookeeper 实现分布式锁。每个系统通过 zookeeper 获取分布式锁确保同一时间只能有一个系统实例在操作某个 key别人都不允许读和写。 你要写入缓存的数据都是从 mysql 里查出来的都得写入 mysql 中写入 mysql 中的时候必须保存一个时间戳从 mysql 查出来的时候时间戳也查出来。 每次要写之前先判断一下当前这个 value 的时间戳是否比缓存里的 value 的时间戳要新。如果是的话那么可以写否则就不能用旧的数据覆盖新的数据。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/86025.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!