当前位置: 首页 > news >正文

用discuz做交友网站天津百度优化

用discuz做交友网站,天津百度优化,个人网站的制作,域名网站这么做什么是缓存雪崩 通常我们为了保证缓存中的数据与数据库中的数据一致性,会给 Redis 里的数据设置过期时间,当缓存数据过期后,用户访问的数据如果不在缓存里,业务系统需要重新生成缓存,因此就会访问数据库,并…

什么是缓存雪崩

通常我们为了保证缓存中的数据与数据库中的数据一致性,会给 Redis 里的数据设置过期时间,当缓存数据过期后,用户访问的数据如果不在缓存里,业务系统需要重新生成缓存,因此就会访问数据库,并将数据更新到 Redis 里,这样后续请求都可以直接命中缓存。

那么,当大量缓存数据在同一时间过期(失效)或者 Redis 故障宕机时,如果此时有大量的用户请求,都无法在 Redis 中处理,于是全部请求都直接访问数据库,从而导致数据库的压力骤增,严重的会造成数据库宕机,从而形成一系列连锁反应,造成整个系统崩溃,这就是缓存雪崩的问题。

缓存雪崩的原因

可以看到,发生缓存雪崩有两个原因:

  • 大量数据同时过期;
  • Redis 故障宕机;

不同的诱因,应对的策略也会不同。

大量数据同时过期

针对大量数据同时过期而引发的缓存雪崩问题,常见的应对方法有下面这几种:

  • 均匀设置过期时间;
  • 互斥锁;
  • 后台更新缓存;

1. 均匀设置过期时间

如果要给缓存数据设置过期时间,应该避免将大量的数据设置成同一个过期时间。我们可以在对缓存数据设置过期时间时,给这些数据的过期时间加上一个随机数,这样就保证数据不会在同一时间过期。

2. 互斥锁

当业务线程在处理用户请求时,如果发现访问的数据不在 Redis 里,就加个互斥锁,保证同一时间内只有一个请求来构建缓存(从数据库读取数据,再将数据更新到 Redis 里),当缓存构建完成后,再释放锁。未能获取互斥锁的请求,要么等待锁释放后重新读取缓存,要么就返回空值或者默认值。

实现互斥锁的时候,最好设置超时时间,不然第一个请求拿到了锁,然后这个请求发生了某种意外而一直阻塞,一直不释放锁,这时其他请求也一直拿不到锁,整个系统就会出现无响应的现象。

3. 后台更新缓存

业务线程不再负责更新缓存,缓存也不设置有效期,而是让缓存“永久有效”,并将更新缓存的工作交由后台线程定时更新

事实上,缓存数据不设置有效期,并不是意味着数据一直能在内存里,因为当系统内存紧张的时候,有些缓存数据会被“淘汰”,而在缓存被“淘汰”到下一次后台定时更新缓存的这段时间内,业务线程读取缓存失败就返回空值,业务的视角就以为是数据丢失了。

解决上面的问题的方式有两种。

第一种方式,后台线程不仅负责定时更新缓存,而且也负责频繁地检测缓存是否有效,检测到缓存失效了,原因可能是系统紧张而被淘汰的,于是就要马上从数据库读取数据,并更新到缓存。

这种方式的检测时间间隔不能太长,太长也导致用户获取的数据是一个空值而不是真正的数据,所以检测的间隔最好是毫秒级的,但是总归是有个间隔时间,用户体验一般。

第二种方式,在业务线程发现缓存数据失效后(缓存数据被淘汰),通过消息队列发送一条消息通知后台线程更新缓存,后台线程收到消息后,在更新缓存前可以判断缓存是否存在,存在就不执行更新缓存操作;不存在就读取数据库数据,并将数据加载到缓存。这种方式相比第一种方式缓存的更新会更及时,用户体验也比较好。

在业务刚上线的时候,我们最好提前把数据缓起来,而不是等待用户访问才来触发缓存构建,这就是所谓的缓存预热,后台更新缓存的机制刚好也适合干这个事情。

http://www.15wanjia.com/news/16256.html

相关文章:

  • 网站没有备案会怎么样新产品推广方案策划
  • 建设一个简单的网站优化大师是什么
  • 网站发展趋势站内推广的方法和工具
  • centos系统怎么做网站站长工具seo综合查询
  • 私人可以买服务器吗网奇seo培训官网
  • 广州微信网站设计专业拓客公司联系方式
  • 网站建设合同纠纷管辖百度信息流广告平台
  • 企业网站建设常见问题资源网站排名优化seo
  • 北京app制作seo二级目录
  • 做网站免费搭建搭建一个网站需要多少钱?
  • 专业vi设计哪家好河北seo基础
  • 天王手表官方网站项目营销策划方案
  • 深圳建设局网站打不开seo外包顾问
  • 公司的网站开发部门叫什么百度seo权重
  • html5手机网站制作教程百度网址大全手机版
  • 北京企业官网网站建设报价项目推广
  • 怎么介绍自己的网页设计关键词智能优化排名
  • 如何做网站的登录注册嘉兴seo排名外包
  • wordpress短代码怎么用网站网页的优化方法
  • 做外贸网站能用虚拟主机吗灰色行业关键词推广
  • 网站建设流程及细节私域流量和裂变营销
  • 淘宝优惠卷网站怎么做微信营销怎么做
  • 腾讯云做网站怎么样iis搭建网站
  • 学做网站需要多久t和p在一起怎么做网站
  • 电商运营网站设计seo快速排名软件案例
  • 营销网站模板htlm石家庄seo培训
  • js网站下拉置顶代码营销型网站外包
  • 手机pc网站模板搜索引擎营销的特点包括
  • 旅游网站开发与设计论文品牌全网推广
  • 政府网站群集约化建设优速网站建设优化seo