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

做网站用什么平台小程序科技有限公司

做网站用什么平台,小程序科技有限公司,东莞seo建站优化公司,从零开始学做网站 网站一、缓存穿透(失效)问题 缓存穿透是指查询一个一定不存在的数据,由于缓存中没有命中,会去数据库中查询,而数据库中也没有该数据,并且每次查询都不会命中缓存,从而每次请求都直接打到了数据库上,这会给数据…

一、缓存穿透(失效)问题

缓存穿透是指查询一个一定不存在的数据,由于缓存中没有命中,会去数据库中查询,而数据库中也没有该数据,并且每次查询都不会命中缓存,从而每次请求都直接打到了数据库上,这会给数据库带来巨大压力。

在这里插入图片描述

二、布隆过滤器原理

布隆过滤器(Bloom Filter)是一种空间效率很高的随机数据结构,它利用多个不同的哈希函数将一个元素映射到一个位数组中的多个位置,并将这些位置的值置为 1。

当查询一个元素时,同样使用这些哈希函数计算出多个位置,如果这些位置上的值都为 1,那么这个元素可能存在;如果有任何一个位置上的值为 0,那么这个元素一定不存在。

布隆过滤器存在一定的误判概率,即可能会把不存在的元素判断为存在,但不会把存在的元素判断为不存在。

三、使用 Redis 中的布隆过滤器解决缓存穿透问题的代码

  1. 引入依赖
<dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.21.1</version></dependency>
  1. 代码实现
import org.redisson.Redisson;import org.redisson.api.RBloomFilter;import org.redisson.api.RedissonClient;public class BloomFilterCache {private final RedissonClient redissonClient;private final RBloomFilter<String> bloomFilter;public BloomFilterCache() {redissonClient = Redisson.create();// 创建布隆过滤器,预计插入 10000 个元素,误判率为 0.01bloomFilter = redissonClient.getBloomFilter("myBloomFilter");bloomFilter.tryInit(10000, 0.01);}public boolean mightContain(String key) {return bloomFilter.contains(key);}public void add(String key) {bloomFilter.add(key);}public void close() {redissonClient.shutdown();}public static void main(String[] args) {BloomFilterCache bloomFilterCache = new BloomFilterCache();// 添加一些可能存在的键bloomFilterCache.add("key1");bloomFilterCache.add("key2");// 查询键是否可能存在System.out.println(bloomFilterCache.mightContain("key1")); // trueSystem.out.println(bloomFilterCache.mightContain("key3")); // falsebloomFilterCache.close();}}

在上述代码中,首先创建了一个 Redisson 客户端,并初始化了一个布隆过滤器。mightContain方法用于判断一个键是否可能存在于布隆过滤器中,add方法用于向布隆过滤器中添加一个键。

使用布隆过滤器可以在缓存之前进行快速判断,减少对数据库的不必要查询,从而有效地解决缓存穿透问题。

获取到缓存失效后改怎么处理?

  1. 返回异常信息,业务流程往下走
  2. 记录对应的日志信息
  3. 异步缓存key到redis
    1. 当使用布隆过滤器判断某个 key 不存在时,触发一个异步任务。
    2. 异步任务从可能的数据来源(如数据库、外部 API 等)获取该 key 对应的数据。
    3. 如果获取到数据,将其存入缓存(Redis 或其他缓存系统),以便下次查询时能够快速响应。
http://www.yayakq.cn/news/237576/

相关文章:

  • 建个什么网站吗吉安工商注册官方网站
  • 上海南建设培训执业中心网站申请电子邮箱免费注册
  • 网站推广软文引擎搜索对人类记忆的影响
  • 成都航空公司官方网站tp网站建设开源代码
  • 成立一个网站需要多少钱html模板网站模板下载
  • 中学生做的网站广西南宁建设银行最新招聘网站
  • 官网网站建设公司wordpress 读取数据库配置文件
  • jsp做的网站带数据库电子商务和网络营销的区别
  • 河南做酒店网络系统网站wordpress 相册浏览
  • 阿里云可以做几个网站重庆市建设工程信息网成绩查询
  • 域名如何解析别人网站有没有专门招代理的网站
  • 做胃肠科医院网站费用python做网站方便么
  • 网站联系方式要素seo排名培训
  • 建设银行纪检监察网站租赁服务器做电影网站
  • 凌源网站优化电商网页美工设计
  • 仓库管理系统网站建设电子商务网站建设的技术综述
  • 无锡建设银行网站即墨市网站建设
  • 如何登录中国建设银行河北分行网站山东网站建设排行榜
  • 岳阳网站平台设计学做网站需要买什么书
  • 电子商务网站建设模块注册的空间网站
  • 成都建设网站首页中文网站开发工具
  • 丽水做网站公司refrakt wordpress
  • 做搜索的网站网站建设html5
  • 深圳外包网站南宁建设银行缴费网站
  • 个人网站页面设计素材湘潭seo公司
  • 深圳网站设计服网络营销方案设计心得
  • 做马甲的网站做网站做网站
  • 重庆忠县网站建设公司电话建站平台哪家好
  • 设计模板免费网站静态网页设计制作实训报告摘要
  • 挂甲寺网站建设电子商务网站的定义