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

中山手机网站建设网站seo策划

中山手机网站建设,网站seo策划,什么是网站建设,如何做网站banner【Redis】什么是缓存穿透,如何预防缓存穿透? 缓存穿透是指查询一个一定不存在的数据,由于缓存中不存在,这时会去数据库查询查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,这…

【Redis】什么是缓存穿透,如何预防缓存穿透?

缓存穿透是指查询一个一定不存在的数据,由于缓存中不存在,这时会去数据库查询查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,这就造成缓存穿透。简单来说,就是访问业务系统不存在的数据,就可能会造成缓存穿透。

缓存穿透会产生什么危害呢?危害就是如果存在海量请求查询系统根本不存在的数据,那么这些海量请求都要查询数据库中,数据库压力剧增,就可能会导致系统崩溃。

在这里插入图片描述

防止缓存穿透有两个解决办法。

第一个办法是在缓存之前再加一道屏障,在控制层先进行校验,符合规则才进行查询,最常见的是采用 BloomFilter(即布隆过滤器)。BloomFilter 中存储目前数据库中存在的所有 Key。当业务系统有查询请求时,首先去 BloomFilter 中查询该 Key 是否存在。若不存在,则说明数据库中也不存在该数据,直接返回空值。若存在,则继续执行后续的流程,先从缓存中查询,缓存中没有再访问数据库进行查询。

使用 BloomFilter 判断一个元素是否属于某个集合时,会有一定的错误率。也就是说,有可能把不属于这个集合的元素误认为属于这个集合,但不会把属于这个集合的元素误认为不属于这个集合。在增加了错误率这个因素之后,BloomFilter 通过允许少量的错误来节省大量的存储空间。

BloomFilter的缺点:只适用于数据命中不高,数据相对固定实时性低(通常是数据集较大)的应用场景,代码维护也较为复杂。

当然,它也有优点,就是缓存空间占用少
在这里插入图片描述
另外一个办法就是空值缓存。也就是如果一个查询返回的数据为空 (不管是数据不存在,还是系统故障),仍然把这个空结果进行缓存。但这样做有一定的弊端,就是当这个查询有数据时,在一定时间内得到的结果仍然是空,所以这个空结果的数据它的过期时间应该要设置得短一些,让它能得到自动剔除;空值缓存,也就保存了更多的键值,消耗了更多的内存空间,如果是外部攻击大量的空值缓存,会消耗掉所有的内存空间,导致系统崩溃。所以空值缓存的利与弊需要在使用过程中综合考虑。

http://www.fp688.cn/news/156094.html

相关文章:

  • 做网站公司费用谷歌商店下载官网
  • 游戏客户端开发网站的优化
  • 寻找集团网站建设免费seo快速收录工具
  • 咸宁做网站哪家好楚雄seo
  • 岗顶做网站公司最新重大新闻
  • 潍坊网站建设服务网站制作的费用
  • 可以做点赞的网站赚钱优化seo公司哪家好
  • 空间设计图片搜索引擎优化排名
  • 石家庄市城乡建设部网站拉新推广怎么找渠道
  • 网页设计视频网站出词
  • 手机网站 微信链接怎么做站长统计app软件
  • wordpress怎样调用分类名称吉林seo基础
  • CMCAP官方网站bt兔子磁力天堂
  • 天助可以搜索别人网站公关公司排行榜
  • 公众号自己做电影网站互联网营销师考试题库
  • 河北网站建设推广资源优化排名网站
  • 免费网站源码下载器最有效的15个营销方法
  • 不建网站可不可以做cpa下载百度地图2022最新版
  • 公司如何做自己的网站今日国内新闻大事20条
  • 网站打不开怎么办永久免费无代码开发平台网站
  • 昆明网站设计报价手机网站制作
  • 徐家汇做网站百度添加到桌面
  • 黄岩区住房保障建设局网站社群营销案例
  • 三亚网红打卡景点关键词排名优化怎么做
  • 启航网站管理系统网站搜索引擎优化的基本内容
  • 京东商城平台商户seo教程百度网盘
  • 文明网站建设情况报告宁波网络营销策划公司
  • 凯里做网站的公司泉州全网营销
  • 网站 防止采集百度手机助手app
  • 企业信息系统包括seo运营招聘