做国际网站每年要多少钱,数据库网站开发外文翻译,app开发制作一般多少钱,网站如果不续费会怎样一、缓存雪崩#xff1a; 1. 原因: 缓存雪崩是指在我们设置缓存时大量采用了相同的过期时间#xff0c;导致缓存在某一时刻同时失效#xff0c;请求全部转发到DB#xff0c;DB瞬时压力过重雪崩。 2. 解决方案:
将失效时间分散#xff0c;通过生成随机数使得key的过期时间…一、缓存雪崩 1. 原因: 缓存雪崩是指在我们设置缓存时大量采用了相同的过期时间导致缓存在某一时刻同时失效请求全部转发到DBDB瞬时压力过重雪崩。 2. 解决方案:
将失效时间分散通过生成随机数使得key的过期时间为随机防止集体过期。使用多级架构nginx缓存redis缓存其他缓存不同层使用不同缓存可靠性更强。设置缓存标记如果过期通知其他线程在后台更新实际的key。 这种方法对于性能非常友好唯一不足的就是构建缓存时候其余线程(非构建缓存的线程)可能访问的是老数据使用锁或者队列的方式使用排他锁其他请求只能等待。
二、缓存穿透 1.原因
缓存穿透是指大量数据查询一个不存在的数据在流量大时可能DB就挂掉了要是有人利用不存在的key频繁攻击我们的应用这就是漏洞。 2. 解决方案:
采用布隆过滤器将所有可能存在的数据哈希到一个足够大的bitmap中一个一定不存在的数据会被 这个bitmap拦截掉从而避免了对底层存储系统的查询压力。如果一个查询返回的数据为空不管是数 据不存在还是系统故障仍然把这个空结果进行缓存但它的过期时间会很短最长不超过五分钟。
三、缓存击穿 1.原因
热点key过期大量数据访问过期key
缓存在某个时间点过期的时候恰好在这个时间点对这个Key有大量的并发请求过来这些请求发现缓存过期一般都会从后端DB加载数据并回设到缓存这个时候大并发的请求可能会瞬间把后端DB压垮。 2. 解决方案: 提前对热点数据进行设置。对于新闻某博等热点数据预先设置在redis中 监控数据对热点数据实时调整key过期时长。 使用锁加锁或者队列的方式保证缓存的单线 程进程写从而避免失效时大量的并发请求落到底层存储系统上。