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

无锡品牌网站建设网站手机百度ai入口

无锡品牌网站建设网站,手机百度ai入口,做网站王仁杰,ps做景观有哪些素材网站CacheLoader 用于数据加载方式比较固定且统一的场景,在缓存容器创建的时候就需要指定此具体的加载逻辑。通常开发中使用时我们需要继承CacheLoader类或写一个匿名实现类实现其load方法和reload方法 load方法 当执行get操作没有命中缓存或者判断缓存已经超出expir…

CacheLoader

用于数据加载方式比较固定且统一的场景,在缓存容器创建的时候就需要指定此具体的加载逻辑。通常开发中使用时我们需要继承CacheLoader类或写一个匿名实现类实现其load方法和reload方法

load方法

当执行get操作没有命中缓存或者判断缓存已经超出expireAfterWrite设置的时间即缓存过期时,会调用load方法进行回源逻辑,获取到新的数据并建立缓存。这个方法执行时是加锁的,并发访问一个没有缓存的key会阻塞。

reload方法

这个方法是用来重新加载缓存的,通常这个方法是配合refreshAfterWrite参数设置一起使用的,如果没有设置refreshAfterWrite参数则不会触发这个方法逻辑,只有再判断缓存写入时间超出refreshAfterWrite的值时才会调用reload方法执行刷新缓存的逻辑。

refreshAfterWrite参数

refreshAfterWrite参数和reload方法逻辑一同实现了Guava cache的缓存刷新。

当执行get访问缓存时,会判断缓存写入时间是否已经超出refreshAfterWrite参数值,如果超出则会加refresh锁并执行load方法回源查询获取新的数据建立缓存。

  • 同一时刻仅允许一个线程执行数据重新加载操作,并阻塞等待重新加载完成之后该线程的查询请求才会返回对应的新值作为结果。
  • 当一个线程正在阻塞执行reload方法时,其它线程此时来执行get请求的时候,会判断下数据需要refresh尝试获取到执行锁,由于获取不到锁所以其它线程的请求不会被阻塞等待reload执行完成,而是立刻返回当前的旧值。
  • 当执行reload方法的线程操作完成后,再有新的线程执行get请求的时候判断数据已经更新无需refresh,则直接返回当前内存中的当前值。 

在具体使用时,需要根据场景综合判断expireAfterWrite和refreshAfterWrite参数的使用:

  • 数据需要永久存储,且不会变更,这种情况下expire和refresh都并不需要设定
  • 数据极少变更,或者对变更的感知诉求不强,且并发请求同一个key的竞争压力不大,直接使用expire即可
  • 数据无需过期,但是可能会被修改,需要及时感知并更新缓存数据,直接使用refresh
  • 数据需要过期(避免不再使用的数据始终留在内存中)、也需要在有效期内尽可能保证数据的更新一致性,则采用expire与refresh两者结合 
http://www.mmbaike.com/news/25354.html

相关文章:

  • 那个网站做淘宝推广比较好抖音推广方案
  • 建设政府网站的社会背景百度广告优化师
  • 做网站难度大吗google翻译
  • 塘下网站建设公司新闻实时报道
  • python flask做网站seo是什么学校
  • 网站301在哪做nba最新排名东西部
  • 做外贸独立网站必须要有备案么策划
  • 推广平台有哪几个快速排名优化推广手机
  • 网站备案 厦门最新新闻事件今天
  • 银行网站模板免费下载长沙百度推广开户
  • 福州企业网站建设成都专业的整站优化
  • 如何做网站结构及栏目策划百度平台客服怎么联系
  • 微博建网站英语培训机构
  • 域名申请到网站建设教程nba常规赛
  • 天津百度优化公司百度推广seo
  • 成都小程序推广企业哈尔滨企业网站seo
  • 免费开源的网站系统人工智能培训班
  • 济南做网络安全的公司seo搜索引擎优化主要做什么
  • 深圳的招聘网站哪家靠谱seo模拟点击算法
  • 重庆做网站建设企业大连百度seo
  • python做网站guthub业务网站制作
  • java手机网站开发太原seo网络优化招聘网
  • 用asp做网站的可行性分析自己建网站的详细步骤
  • 网站开发用什么服务器南宁企业官网seo
  • wordpress手机投稿春哥seo博客
  • 装潢设计用什么软件优化网站界面的工具
  • 网站建设6000元沈阳seo排名优化软件
  • 中山 网站推广优化网站技术
  • 哪有做网站的 优帮云北京学校线上教学
  • 做神马网站优化快网站信息