西昌seo快速排名,嘉兴seo外包,湖北金扬建设网站,做一个专业的网站多少钱缓存预热缓存雪崩缓存击穿缓存穿透
一、缓存预热 提前将数据从数据库同步到redis。
在程序启动的时候#xff0c;直接将数据刷新到redis懒加载#xff0c;用户访问的时候#xff0c;第一次查询数据库#xff0c;然后将数据写入redis
二、缓存雪崩
发生情…缓存预热缓存雪崩缓存击穿缓存穿透
一、缓存预热 提前将数据从数据库同步到redis。
在程序启动的时候直接将数据刷新到redis懒加载用户访问的时候第一次查询数据库然后将数据写入redis
二、缓存雪崩
发生情况 redis主机挂了redis全盘崩溃偏硬件运维redis中有大量key同时过期或大面积失效偏软件开发 预防解决方法 redis中key设置永不过期或者过期时间错开redis集群实现高可用 主从哨兵redis 集群开启redis持久化aof、rdb尽快恢复集群数据 多缓存结合预防雪崩 encache本地缓存redis缓存 服务降级 hystrix或者sentinel限流降级 使用云服务redis
三、缓存穿透 是什么 请求去查询一条记录先查redis无后查mysql无都查询不到该条记录但是请求每次都会打到数据库上面去导致后台数据库压力暴增这种现象我们称为缓存穿透这个redis就变成了一个摆设。 简单说就是本来无一物两库都没有。既不在Redis也不在数据库数据库存在被多次暴击风险 解决 缓存穿透最怕恶意攻击使用空对象缓存、布隆过滤器可解决 空对象缓存或者缺省值 黑客或者恶意攻击 黑客会对你的系统进行攻击拿一个不存在的id去查询数据会产生大量的请求到数据库去查询。可能会导致你的数据库由于压力过大而宕掉。 key相同 第一个打到mysql空对象缓存后第二次就返回null或者默认值避免mysql被打击不用再查询数据库。 key不相同 由于存在空对象缓存和缓存回写redis中的无关紧要的key也会越来越多需要设置过期时间 使用google guava布隆过滤器 guava中布隆过滤器的实现比较权威所以实际项目中可以直接使用guava布隆过滤器 案例白名单过滤
四、缓存击穿 是什么 大量的请求同时查询一个key并且这个key此时正好失效了就会导致大量的请求到达数据库。 简单的说就是热点key突然失效暴打mysql 危害 会造成某一时刻数据库请求过大压力剧增 一般需要技术部门知道哪些是热点key防止击穿 解决 缓存击穿热点key失效解决方法互斥更新、随机退避、差异失效时间 失效原因 时间到了自然清除但还被访问到了删除key的时候突然被访问到了 解决方法 差异失效时间对于访问频繁的热点key就不设置过期时间 互斥更新采用双检加锁策略
五、总结