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

网站推广成功案例河南今日重大新闻

网站推广成功案例,河南今日重大新闻,群晖做网站需要备案吗,如何制作一个官网redis哨兵模式 一.缓存穿透1.概念2.解决方案1)接口校验2)缓存空值3)布隆过滤器4)实时监控 二.缓存击穿1.概念2.解决方案1)设置热点数据永不过期2)加互斥锁3)”提前“使用互斥锁 / 逻辑过期4&…

redis哨兵模式

    • 一.缓存穿透
      • 1.概念
      • 2.解决方案
        • 1)接口校验
        • 2)缓存空值
        • 3)布隆过滤器
        • 4)实时监控
    • 二.缓存击穿
      • 1.概念
      • 2.解决方案
        • 1)设置热点数据永不过期
        • 2)加互斥锁
        • 3)”提前“使用互斥锁 / 逻辑过期
        • 4)对热点数据进行预热
    • 三.缓存雪崩
      • 1.概念
      • 2.解决方案
        • 1)redis高可用
        • 2)限流降级
        • 3)将失效时间分散开
        • 4)数据预热
        • 5)设置缓存标记

reids缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。但是,它也带来一些问题。比如最主要问题就是数据一致性问题,严格意义上该问题无解,所以如果对数据一致性要求很高,那么就不能使用缓存。

另外的一些问题就是如缓存穿透,缓存击穿,缓存雪崩
在这里插入图片描述

一.缓存穿透

1.概念

大量高并发请求查询的数据在redis发现不存在(缓存未命中),于是向持久层数据库查询(mysql),发现也不存在,这样缓存永远不会生效。这样大量请求都会请求持久层数据库,这将造成持久层数据库很大压力,这时就出现了所说的缓存穿透。

2.解决方案

1)接口校验

对于id = -1234这类无效查询直接拦截,不允许这些请求到达Redis、DB上。

2)缓存空值

比如,虽然数据库中没有id = 666的用户的数据,但是在redis中对他进行缓存(key=666, value=null),这样当请求到达redis的时候就会直接返回一个null的值给客户端,避免了大量无法获取的数据请求直接访问DB。

注意:
1.key设置的过期时间不能太长,防止占用太多redis资源,设置一个合适的TTL,比如两三分钟。当遇到黑客暴力请求很多不存在的数据时,就需要写入大量的null值到Redis中,可能导致Redis内存占用不足的情况。
2.即使设置了过期时间,还是会存在缓存层和持久层数据会有一段时间的不一致,这对于需要保持一致性的业务有影响。

3)布隆过滤器

布隆过滤器是一种数据结构,对所有可能查询的参数以hash形式存储,在控制层先进行校验,不符合则丢弃,从而避免对底层存储系统的查询压力。
在这里插入图片描述

4)实时监控

对redis进行实时监控,当发现redis中的命中率下降的时候进行原因的排查,配合运维人员对访问对象和访问数据进行分析查询,从而进行黑名单的设置限制服务(拒绝黑客攻击)。

二.缓存击穿

1.概念

这里需要注意和缓存穿透的区别,缓存击穿是指一个key非常热点,在不停扛着大并发,大量并发集中对这一个点进行访问,当这个key在失效的瞬间,持续的大并发就穿破缓存,直接请求数据库,就像在一个屏障上凿开了一个洞。

当某个key在过期的瞬间,有大量的请求并发访问,这类数据一般是热点数据,由于缓存过期,会同时访问数据库来查询最新数据并回写缓存,会使得数据库瞬间压力过大。

2.解决方案

1)设置热点数据永不过期

从缓存层来看,不设置过期时间,就不会出现热点key过期后产生的问题。

2)加互斥锁

使用setnx作为Redis中的锁。
分布式锁:使用分布式锁,保证对于每个key同时只有一个线程去查询数据库并返回到Redis,其他线程没有获得分布式锁的权限则等待,之后所有请求就可以从Redis中得到响应。这种方式将高并发的压力转移到了分布式锁上。
在这里插入图片描述

3)”提前“使用互斥锁 / 逻辑过期

在value内部设置一个比缓存(Redis)过期时间短的过期时间标识,当异步线程发现该值快过期时,马上延长内置的这个时间,并重新从数据库加载数据,设置到缓存中去。【缺点:不保证一致性,实现相较互斥锁更复杂】
在这里插入图片描述

4)对热点数据进行预热

对热点数据预先设置在Redis中,或者适当延长Redis中的Key过期时间。

三.缓存雪崩

1.概念

缓存雪崩是指在某一个时间段缓存集中过期失效或redis宕机。

比如双十一在12点集中将一批商品放入了缓存并设置缓存时间为1个小时。当到了凌晨1点钟时,这批商品缓存过期。这时对这批商品进行访问查询都会去访问数据库,对于数据库来说就会产生周期性的压力波峰。于是所有请求都会到达持久层,持久层调用量急增,可能造成数据库宕机。
相对于集中过期来说缓存服务器的宕机是比较致命的缓存雪崩

2.解决方案

1)redis高可用

搭建redis集群,防止单机redis宕机整个缓存不可用

2)限流降级

该方案的思想是,在缓存失效后,通过加锁或者队列来控制读取数据库写缓存的线程数量,比如对某个key只允许一个线程查询数据和回写进缓存(可能影响并发)

3)将失效时间分散开

常用且易于实现通过使用自动生成随机数使得key的过期时间TTL是随机的,防止集体过期。

4)数据预热

在发生高并发前手动触发加载缓存的key使得大量访问数据加载到缓存中。

5)设置缓存标记

热点数据可以不考虑失效,后台异步更新缓存,适用于不严格要求缓存一致性的情景。

其它参考文章

http://www.wangmingla.cn/news/123338.html

相关文章:

  • 微信网站设计运营网络营销渠道有哪三类
  • 做asp网站需要的实验报告单视频营销案例
  • 产品推广运营的公司seo推广排名软件
  • 北京企业推广昆明seo技术培训
  • 做一个论坛网站需要多少钱广州网站关键词排名
  • wordpress安装教程 mac台州seo公司
  • 新手学纪事本html代码做网站百度推广关键词排名在哪看
  • 免费域名注册发卡网seo搜索引擎推广
  • 企业网站建设可行性分析广州seo怎么做
  • 今日汽油价格调整最新消息郑州seo优化外包顾问
  • 想开一个做网站的公司网店代运营商
  • 网上接单干活的平台南京百度seo排名
  • 云相册网站怎么做的搜索引擎关键词优化有哪些技巧
  • 网站整合建设方案整站优化 快速排名
  • 做理财的网站有哪些郑州网络推广
  • 种植园网站模板seo营销怎么做
  • 网站首页的功能需求分析搜索引擎推广有哪些平台
  • 怎么介绍自己做的网站长沙专业seo优化公司
  • 营销网站建设是什么咸阳seo公司
  • 松原做招聘的网站有哪些广州seo优化外包服务
  • 网站正在建设中怎么办seo诊断分析在线工具
  • 圣宠宠物网站建设常见的营销方式有哪些
  • 网站开发综合实训总结seo案例分析方案
  • 深圳网站建设公司推荐万维网域名注册查询
  • 渭南做网站公司西地那非片的功能主治
  • wordpress 钩子教学众志seo
  • 那种限时购的网站如何做河源新闻最新消息
  • 区总工会网站建设流程互联网搜索引擎有哪些
  • 网站快速优化排名方法比百度强大的搜索引擎
  • 公司网站 备案引擎搜索技巧