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

购物网站开发的描述免费涨热度软件

购物网站开发的描述,免费涨热度软件,如何选择电商网站建设,网站内容规划模板redis面试题常见分类 缓存穿透 定义 缓存穿透是一种现象,引发这种现象的原因大概率是遭到了恶意攻击。具体就是查询一个一定不存在的数据,mysql查询不到数据也不会直接写入缓存,就会导致这个数据的每次请求都需要查DB,数据库压力…

redis面试题常见分类

在这里插入图片描述

缓存穿透

定义

缓存穿透是一种现象,引发这种现象的原因大概率是遭到了恶意攻击。具体就是查询一个一定不存在的数据,mysql查询不到数据也不会直接写入缓存,就会导致这个数据的每次请求都需要查DB,数据库压力很大,从而挂掉。
在这里插入图片描述

解决方案一:缓存空数据

我们缓存空数据,查询返回的数据为空,仍把这个空结果进行缓存。
优点:简单
缺点:消耗内存,可能会发生缓存和数据库不一致的问题。

为什么可能发生缓存和数据库不一致的问题。因为一开始数据库中没有该数据,redis就会缓存空结果。但是后来我们在数据库中插入该数据时,缓存中依旧是空结果,那么就不一致了。

解决方案二:布隆过滤器

我们可以在缓存预热时,创建一个布隆过滤器,它的作用就是判断一个数据是否存在。每次查询前先查询布隆过滤器,来判断这个数据是否一定存在,如果存在,则查询redis以及之后的DB层。如果不存在则直接返回。
在这里插入图片描述
优点:内存占用较少,没有多余key
缺点:实现复杂,存在误判

布隆过滤器定义、存储/查找数据

布隆过滤器实际上就是一个bitmap(位图),相当于是一个以(bit)位为单位的数组,数组中每个单元只能存储二进制数0或1,初始化全为0。
存储数据就是将数据的值经过x个哈希函数后获取x个哈希值,然后将数组对应位置改为1.
查询数据就是用相同的x个哈希函数获取x个哈希值,然后判断数组对应位置是否都为1.
在这里插入图片描述

布隆过滤器误判

通过布隆过滤器的原理,我们可以发现,如果一个数在过滤器中找不到,那么它一定不存在。但是如果一个数能在过滤器中找到,也不意味着它一定存在。因为过滤器存在误判现象。
譬如下图,id1和id2在数组上的下标覆盖了id3在数组上的下标。存储了id1和id2,就会让id3查询所对应的数组下标位置也变为1。实际上id3是不存在的,但是会被误判为存在。
在这里插入图片描述
误判率:数组越小误判率就越大,数组越大误判率就越小,但是同时带来了更多的内存消耗。
一般我们将误判率设置在5%,比较合理地兼顾内存和误判率。

测试误判率和初始化布隆过滤器代码(不用看,仅供个人存档用)

  /*测试误判率*/private static int getData(RBloomFilter<String> bloomFilter, int size){int count=0;for(int x=size; x<size*2;x++){if(bloomFilter.contains("add"+x)){count++;}}return count;
}/*初始化数据*/private static void initData(RBloomFilter<String> bloomFilter, int size{bloomFilter.tryInit(size, 0.05);for(int x=0;x<size;x++){bloomFilter.add("add"+x);}System.out.println("初始化完成……");}

面试回答模板

什么是缓存穿透 ,怎么解决 ?

背熟以下回答,大概用时1分半。

缓存穿透是一种现象,引发这种现象的原因大概率是遭到了恶意攻击。具体就是查询一个一定不存在的数据,mysql查询不到数据也不会直接写入缓存,就会导致这个数据的每次请求都需要查DB,如果同时并发多个请求的话。数据库压力就会很大,从而挂掉。

解决方案的话一般有两种,第一种是直接缓存空数据。这种方案实现简单,但是可能比较消耗内存,而且有可能发生缓存和数据库数据不一致的问题。我们通常选择第二种解决方案,就是布隆过滤器。布隆过滤器实际上就是一个bitmap(位图),相当于是一个以(bit)位为单位的数组,数组中只能存储0或1,初始时全为0。存储数据就是将数据的值经过x个哈希函数后获取x个哈希值,然后将数组对应位置改为1.查询数据也一样。我们可以在缓存预热时,创建一个布隆过滤器,它的作用就是判断一个数据是否存在。每次查询前先查询布隆过滤器,来判断这个数据是否一定存在,如果存在,则查询redis以及之后的DB层。如果不存在则直接返回。

本篇所有图片来自于黑马程序员。

http://www.hkea.cn/news/247615/

相关文章:

  • 北京网站建设开发公司网站自动收录
  • wordpress最多多少用户seo基础知识
  • 湘潭做网站 去磐石网络b站推出的短视频app哪个好
  • 宿迁做网站的公司有人看片吗免费观看视频
  • 什么人最需要建设网站淘宝运营一般要学多久
  • 海南网站优化东莞免费建站公司
  • 传播型网站建设优势有哪些推广类软文
  • 如何在百度做网站推广赚钱的软件
  • c# 网站开发教程周口网站seo
  • 湘西网站建设帮人推广注册app的平台
  • 切图做网站web制作网站的模板
  • 网站的做网站公司哪家好网络优化大师app
  • 国内外包网站今日头条(官方版本)
  • 外网建筑设计网站线上渠道推广有哪些方式
  • 厦门做网站公司排名电工培训机构
  • 武汉网站设计制作外包公司的人好跳槽吗
  • 网站建设哪里最好页面关键词优化
  • 清远建设网站制作seo系统培训课程
  • 网站的网页建设知识ppt北大青鸟职业技术学院简介
  • 巫山网站设计aso优化榜单
  • 关于节约化建设网站的表态发言网站制作报价表
  • 建行网站是多少呢故事式的软文广告例子
  • 阳江市住房和城乡规划建设局网站一级消防工程师考试
  • 做课件的网站有哪些用html制作淘宝网页
  • 网站开发前后台整个流程品牌宣传的推广
  • 深圳市门户网站建设网站推广优化方法
  • 中山公司注册网页怎么优化
  • 网站建设怎么分录2022年新闻摘抄简短
  • 江西景德镇建设厅网站太原关键词排名推广
  • 番禺做网站自媒体发布平台有哪些