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

做企业网站 排名企业网站建设论文

做企业网站 排名,企业网站建设论文,网站分页需要前端做还是后端,wap网站开发用什么语言文章目录 #x1f354;什么是缓存穿透#x1f384;解决办法⭐缓存空值处理#x1f388;优点#x1f388;缺点#x1f38d;代码实现 ⭐布隆过滤器#x1f38d;代码实现 #x1f354;什么是缓存穿透 缓存穿透是指在使用缓存机制时#xff0c;大量的请求无法从缓存中获取… 文章目录 什么是缓存穿透解决办法⭐缓存空值处理优点缺点代码实现 ⭐布隆过滤器代码实现 什么是缓存穿透 缓存穿透是指在使用缓存机制时大量的请求无法从缓存中获取到结果导致请求都要直接访问后端存储系统从而增加了系统的负载和响应时间。 通常的缓存机制是将请求的结果缓存在内存或其他高速存储介质中当相同的请求再次到达时可以直接从缓存中获取结果避免了从后端存储系统中读取数据的开销。 然而在缓存穿透的情况下由于大量请求所对应的数据在缓存中不存在每个请求都需要直接访问后端存储系统。这可能是因为恶意请求、频繁的随机查询或者查询不存在的数据等原因。 缓存穿透可能导致以下问题 性能下降由于大量的请求都要直接访问后端存储系统系统的响应时间会显著增加导致性能下降。增加负载后端存储系统承受了大量无效请求的压力增加了系统的负载可能导致后端存储系统的性能问题。安全风险缓存穿透可能为恶意请求提供了一种绕过缓存机制直接访问后端存储系统的途径可能导致安全漏洞或数据泄露。 解决办法 缓存空值处理对于不存在的数据也将其缓存起来但缓存的值为空这样下次再有相同的请求到达时可以直接返回空结果避免对后端存储系统的重复查询。布隆过滤器Bloom Filter使用布隆过滤器可以快速判断请求所对应的数据是否存在于缓存中从而减少对后端存储系统的无效查询。 ⭐缓存空值处理 优点 实现简单维护方便 缺点 额外的内存消耗可能造成短期数据的不一致 代码实现 Service public class ShopServiceImpl extends ServiceImplShopMapper, Shop implements IShopService {Resourceprivate StringRedisTemplate stringRedisTemplate;Resourceprivate CacheClient cacheClient;Overridepublic Result queryById(Long id) {String keyCACHE_SHOP_KEY:id;//从redis中查询商铺缓存String shopJsonstringRedisTemplate.opsForValue().get(key);//判断是否存在if(StrUtil.isNotBlank(shopJson)){ //isNotBlank只有传入的是 字符串 的情况下才返回true否则返回false//存在直接返回Shop shop JSONUtil.toBean(shopJson, Shop.class);return Result.ok(shop);}//判断命中的是否是空值//因为上面isNotBlank判断了有值的情况了下面需要判断的就2种情况 null 和 空字符串if(shopJson!null){//不为null那么为空字符串return Result.fail(店铺不存在);}//不存在根据id查询数据库Shop shop this.getById(id);//不存在返回错误信息if (shop null) {//将空值写入到redisstringRedisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(shop),CACHE_SHOP_TTL, TimeUnit.MINUTES);return Result.fail(店铺不存在);}//存在写入到redis里面stringRedisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(shop),CACHE_SHOP_TTL, TimeUnit.MINUTES);//返回return Result.ok(shop); }⭐布隆过滤器 布隆过滤器是一种空间效率高、适合大规模数据的概率型数据结构用于判断一个元素是否可能存在于一个集合中。布隆过滤器由一个位数组和多个哈希函数组成。其核心思想是通过多个哈希函数对输入元素进行映射将元素映射到位数组的多个位置上从而实现元素的快速查找。 假设布隆过滤器使用一个长度为 m 的位数组和 k 个独立的哈希函数初始时所有位都置为 0。当要插入一个元素时将该元素经过 k 个哈希函数得到的 k 个哈希值作为索引在位数组中将这 k 个位置的值置为 1。当要查询一个元素时同样将该元素经过 k 个哈希函数得到的 k 个哈希值作为索引并检查对应的位数组位置是否都为 1若有任何一个位置为 0则可以确定该元素不存在于集合中若都为 1则该元素可能存在于集合中。 布隆过滤器的优势在于具有较高的空间效率和查询效率适合大规模数据的情况。由于使用了多个哈希函数可以有效减少冲突的概率降低误判率。然而布隆过滤器也存在一定的缺陷即可能出现误判即判断某个元素存在于集合中但实际上并不存在这是由于不同元素经过哈希函数映射后的索引可能存在冲突。因此在使用布隆过滤器时需要权衡误判率和空间利用率。 总的来说布隆过滤器通过位数组和多个哈希函数实现了高效的元素判断是一种适合大规模数据场景下的概率型数据结构 代码实现 实现引入依赖 dependencygroupIdcom.google.guava/groupIdartifactIdguava/artifactIdversion29.0-jre/version/dependency配置启动类 编写核心代码 Service public class ShopServiceImpl extends ServiceImplShopMapper, Shop implements IShopService {Resourceprivate StringRedisTemplate stringRedisTemplate;Autowiredprivate BloomFilterLong bloomFilter;Overridepublic Result queryById(Long id) {String key CACHE_SHOP_KEY : id;// 使用布隆过滤器判断缓存键是否存在if (!bloomFilter.mightContain(id)) {// 缓存键不存在直接返回错误信息return Result.fail(店铺不存在);}// 从redis中查询商铺缓存String shopJson stringRedisTemplate.opsForValue().get(key);// 判断是否存在if (StrUtil.isNotBlank(shopJson)) {// 存在直接返回Shop shop JSONUtil.toBean(shopJson, Shop.class);return Result.ok(shop);}// 不存在根据id查询数据库Shop shop this.getById(id);// 不存在返回错误信息if (shop null) {// 将空值写入到redisstringRedisTemplate.opsForValue().set(key, , CACHE_SHOP_TTL, TimeUnit.MINUTES);// 将缓存键加入布隆过滤器bloomFilter.put(id);return Result.fail(店铺不存在);}// 存在写入到redis里面stringRedisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(shop), CACHE_SHOP_TTL, TimeUnit.MINUTES);// 将缓存键加入布隆过滤器bloomFilter.put(id);// 返回return Result.ok(shop);}更加详细的布隆过滤器讲解请参考我的Redis专栏Redis专栏里面讲解布隆过滤器的文章 在技术的道路上我们不断探索、不断前行不断面对挑战、不断突破自我。科技的发展改变着世界而我们作为技术人员也在这个过程中书写着自己的篇章。让我们携手并进共同努力开创美好的未来愿我们在科技的征途上不断奋进创造出更加美好、更加智能的明天
http://www.hkea.cn/news/14367939/

相关文章:

  • 建设企业网站的郑州网络公司现状
  • 如何注册网站域名专业的企业网站建设公司
  • 做一个搜索引擎网站要多少钱马鞍山 做网站
  • 高度重视部门网站建设龙岩上杭
  • 工行网站跟建设网站区别网页版qq农场
  • 域名主机网站导航有没有做网站的公司
  • 做名片赞机器人电脑网站是多少网络建设股票有哪些
  • 网站收录多少才有排名wordpress微信管理系统
  • 网站的盈利方式网络营销推广三板斧
  • 织梦网站底部黑链wordpress ap
  • 怎么提交百度收录关闭站长工具seo综合查询
  • vs网站制作教程百度手机版网址
  • 杭州建站网站建设搜索引擎推广特点
  • 电脑端网站和手机网站区别商标图案大全大图 logo
  • 网站建设硬件方案做包装找灵感看什么网站
  • 东莞市微客巴巴做网站怎么将自己做的网站发到网上去
  • 建设网站一般需要多少钱成都网站建设快速服务
  • 网站建设需要的技术手段网页登录界面制作
  • 网站seo优化有哪些搜索引擎大全入口
  • 网站推广策划报告航空航天网站建设建设公司资质要求
  • 高端的网站设计公司现在网站开发的前端语言
  • 天津模板建站代理怎么设计一个网站
  • 网站怎么样制作视频wordpress文章头部
  • 做网站为什么不要源代码网站页尾的作用
  • wap网站和internet网站百度拍照搜题
  • 做网站 站内搜索引擎做钻石资讯网站
  • 网站设计步骤图片重庆建设摩托车网站
  • 河北公司网站开发报价网站建设
  • 买网站名称网络设计方案的重要性
  • 市场营销专业网站怎么做百度推广平台