「IT女神勋章」挑战赛#
缓存
本地缓存
本地缓存为了保证线程安全问题,一般使用ConcurrentMap的方式保存在内存之中
分布式缓存。
常见的分布式缓存则有Redis,MongoDB等。
- 一致性:本地缓存由于数据存储于内存之中,每个实例都有自己的副本,可能会存在不一致的情况;分布式缓存则可有效避免这种情况
- 开销:本地缓存会占用JVM内存,会影响GC及系统性能;分布式缓存的开销则在于网络时延和对象序列化,故主要影响调用时延
- 适用场景:本地缓存适用于数据量较小或变动较少的数据;分布式缓存则适用于一致性要求较高及数量量大的场景(可弹性扩容)
本地缓存适用于数据量较小或变动较少的数据,因为变动多需要考虑到不同实例的缓存一致性问题,而数据量大则需要考虑缓存回收策略及GC相关的问题
Guava cache
Guava Cache 是Google Fuava中的一个内存缓存模块,用于将数据缓存到JVM内存中。
提供了get、put封装操作,能够集成数据源 ;
线程安全的缓存,与ConcurrentMap相似,但前者增加了更多的元素失效策略,后者只能显示的移除元素;
Guava Cache提供了多种基本的缓存回收方式
监控缓存加载/命中情况
通常,Guava缓存适用于以下情况:
- 愿意花费一些内存来提高速度。
- 使用场景有时会多次查询key。
- 缓存将不需要存储超出RAM容量的数据
https://blog.csdn.net/why_still_confused/article/details/107138230
项目中应用
配置Guava缓存
@Configuration
@EnableCaching
public class GuavaConfig {/*** 默认过期时间60S*/private final int DEFAULT_TIME_OUT = 60;/*** 默认缓存最大个数500*/private final int DEFAULT_MAXSIZE = 500;@Beanpublic CacheManager cacheManager() {GuavaCacheManager cacheManager = new GuavaCacheManager();cacheManager.setCacheBuilder(CacheBuilder.newBuilder().expireAfterWrite(DEFAULT_TIME_OUT, TimeUnit.SECONDS).maximumSize(DEFAULT_MAXSIZE));return cacheManager;}}
使用
在controller的方法上使用,如果一分钟内相同的参数进行请求,都使用的是guava缓存中的内容,
/** * 如果一分钟内相同的参数进行请求,都使用的是guava缓存中的内容,* 这里配置的key和value* @param: ids* @param: departmentId * @return: AppDataResult<List<Object>> * @date: 2021/9/29*/ @GetMapping("queryUserList")@Cacheable(value = "user", key = "'api/user.ids:'.concat(#ids == null ? '' :#ids)" +".concat('&departmentId:').concat(#departmentId == null ? '' : #departmentId.toString())" )public AppDataResult<List<Object>> queryUserList(@RequestParam String ids,Long departmentId) {//.......return null;}
以上
在controller的方法上使用,如果一分钟内相同的参数进行请求,通过以上方法可大幅度提高接口请求效率,但是有一定的缓冲时间,数据可能不一致,要注意数据时效性
在controller的方法上使用,如果一分钟内相同的参数进行请求,通过以上方法可大幅度提高接口请求效率,但是有一定的缓冲时间,数据可能不一致,要注意数据时效性、
在controller的方法上使用,如果一分钟内相同的参数进行请求,通过以上方法可大幅度提高接口请求效率,但是有一定的缓冲时间,数据可能不一致,要注意数据时效性
「IT女神勋章」挑战赛#相关推荐
- 为「IT女神勋章」而战
大家好,我是空空star,今天为「IT女神勋章」而战 文章目录 前言 一.IT女神勋章 二.绘制爱心 1.html+css+js 来源:一行代码 代码 效果 2.python 来源:C知道 代码 效果 ...
- 【IT女神勋章挑战赛名单公布】:看看谁获奖啦!
致敬女性开发者,为那些IT女神而战!「IT女神勋章挑战赛」已落下帷幕,博主们的比拼结果也已新鲜出炉,快来看看此次征文中,有哪些精彩文章不容错过! 活动官网:https://activity.csdn. ...
- 腾讯极客挑战赛正式开赛!「鹅罗斯方块」开“玩”啦
燃爆盛夏,「腾讯极客挑战赛」巅峰对决竞技场现已开启! 极客对决,等你前来! 点击[阅读原文],即刻报名参赛 勇夺offer名额和万元奖品!
- 论文无法复现「真公开处刑」,PapersWithCode上线「论文复现报告」
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源丨机器之心 编辑丨极市平台 导读 近日,机器学习资源网站 Pap ...
- 猪心移植人体背后竟有个川妹子!36岁哈佛女学霸敲除猪致病基因,获赞「基因剪刀手」...
点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 编辑:桃子 时光 好困 [导读]几天前,美国57岁男子成功接受了转基因猪心的移植手术. ...
- 哥德尔90年前的「不完备性定理」,奠定了计算机与AI的理论基础
大神早已远去,而他的光芒仍在人间. 1931 年,奥地利裔美国著名数学家库尔特 · 哥德尔(Kurt Gödel)在一篇论文<Über formal unentscheidbare Sätze ...
- 多模态语义分析_「CV学霸开讲」卷积神经网络压缩、多模态的语义分析研究
原标题:「CV学霸开讲」卷积神经网络压缩.多模态的语义分析研究 [新智元导读]2017年度百度奖学金10位候选人中,人大的陈师哲和北大的王云鹤所学专业主要集中在计算机视觉,本文将详细呈现CV学子的求学 ...
- 特朗普近百条推文,被 Twitter 标记为「不实消息」
By 超神经 内容提要:自从 2016 年美国大选之后,各社交平台因虚假消息误导选民而备受批评.近几年来,Twitter 在消除虚假信息上投入了大力气,最近晒出了今年的成果. 关键词:Twitter ...
- 斯坦福「AI百年研究」首份报告:2030年的人工智能与生活
斯坦福「AI百年研究」首份报告:2030年的人工智能与生活 2014 年秋季,人工智能百年研究(One Hundred Year Study)项目启动,这是一项对人工智能领域及其对人类.社区.社会影响 ...
最新文章
- ORACLE常用的动态性能视图
- 每天一道LeetCode-----生命游戏
- 解决pycharm安装包过程出现的问题:module 'pip' has no attribute 'main'
- $(document).ready(); $().ready(); $()
- 网络分流器|运营商光纤延距解决方案
- easy ui dialog 关闭之后的怪异问题
- 父亲节,程序员几条代码硬核示爱
- EasyUI 的Tab 标签添加右键菜单
- 代码织入 android,这可能是Android最傻瓜式的AOP框架
- C++超市管理系统(直接可以运行)
- Max Core Frequency 异常显示为-1.80GHz -- Intel-Extreme-Tuning-Utility-Intel-XTU (英特尔 XTU)
- 模块四:应急预案参考模板
- 创新设计思维---自学报告
- Relatively Prime Pairs
- JAVA 生成二维码 并设置 +失效机制
- Mysql增加传输数据量或连接时间,防止mysql server has gone away报错
- 观张国荣的电影《霸王别姬》有感
- php ar技术,vr和ar是什么技术,有什么区别
- Thinking_2_酸甜苦辣咸的2016
- 问题:如何查询宇视摄像机/摄像头规格参数