首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

java缓存使用

说起缓存,首先映入我们脑海好像有很多种,比如说java自带map,业界流行分布式缓存服务器redis,其实还有mc了,但是mc很少用到,至少自己从未用到过,了解一下就可以了,有的时候,你知道仅仅需要了解...今天自己分享是谷歌提供一个自带过期时间map,为啥要分享这篇文章呢,又是自己一次总结,因为分配给自己需求里面就是在单机版服务进行任务完成,但是当时自己用了另外一个方法去做,但是多人情况下就出现了问题...首先,我们需要在自己项目mavenpom文件加上下面的依赖。 <!...com.google.common.cache.CacheBuilder; import lombok.*; import lombok.experimental.Accessors; import lombok.extern.slf4j.Slf4j; import java.time.Duration...; import java.util.HashSet; import java.util.Set; import java.util.concurrent.ConcurrentMap; import java.util.concurrent.TimeUnit

61120
您找到你想要的搜索结果了吗?
是的
没有找到

java缓存技术介绍

Cache 二、缓存分类 1、基于web应用系统架构图 2、在系统架构不同层级之间,为了加快访问速度,都可以存在缓存 操作系统磁盘缓存->减少磁盘机械操作 数据库缓存->减少文件系统I/...O 应用程序缓存->减少对数据库查询 Web服务器缓存->减少应用服务器请求 客户端浏览器缓存->减少对网站访问 三、操作系统缓存 1、文件系统提供Disk Cache:操作系统会把经常访问到文件内容放入到内存当中...R Mapping框架要求进行针对性设计,使用对象缓存将会极大降低Web系统对于数据库访问请求 良好设计数据库结构和利用对象缓存,能够提供极高性能,对象缓存适合OLTP(联机事务处理)应用 2...查询缓存和对象缓存适用场景不一样,是互为补充 当查询结果集涉及表记录被修改以后,需要注意清理缓存 3、页面缓存 a、作用 针对页面的缓存技术不但可以减轻数据库服务器压力,还可以减轻应用服务器压力...,适用于一些个性化但不经常更新页面(例如博客) OSCache提供了简单页面缓存 可以自行扩展JSP Tag实现页面局部缓存 六、web服务器端缓存 基于代理服务器模式Web服务器端缓存,如squid

68830

初级 Java 3 本进阶

翻开一看,真如Erich Camma所说,简直欲罢不能.本书是OreillyHead First系列中一本,本系列书籍特点是采用大量插图、图例来进行辅助讲解,插图设计非常和内容贴切,能够非常形象地反映当前内容...本书虽然有600多页,可是由于大量图文、空白,使得本书阅读起来非常畅快。虽然文本内容并没有那么多,但是本书真正蕴涵内容和使人获得对设计模式理解远远要大于阅读1000本同样书籍。...2.Effective Java中文版 看完这本书,也许你还会有另外收获,就是把一些使用IDE时习惯找到了他们依据。 很多规则,读这之前并不知道,但可能你一直就是这么做了,也许你会惊讶。...3.Java并发编程实战 这本书前半部分我读非常仔细,但后半部分则跳跃了很多,并没有完整阅读。当然原因肯定不是这本书不够好,而是我本人内力实在是太差了,越看越羞愧。...多线程并发编程更是如此,没有足够经验,光一个简单同步访问都能把你折腾够呛…… 路漫漫其修远兮,吾将上下而求索。

1.2K50

高级Java必看10本

4、Effective Java 这本经典Jolt获奖作品实属众望所归。作者对新版进行了彻底更新。...涵盖了自第l版之后所引入Java E5和Java SE 6特性,同时开发了新设计模式和语言习惯用法,介绍了如何充分利用从泛型到枚举、从注解到自动装箱各种特性。...书中每一章都包含几个“条目”,以简洁形式呈现,自成独立短文,它们提出了具体建议,对于Java平台精妙之处独到见解,以及优秀代码范例。...5、Java多线程编程核心技术 资深Java专家10年经验总结,全程案例式讲解,首本全面介绍Java多线程编程技术专著。...本书对管理员和web站点管理员而言,具有较强参考价值;对在开发或产品中要使用Tomcat作为web应用程序服务器开发者而言,这是一本有用指南;对Tomcat感兴趣的人而言,这是一本优秀介绍工具

1.3K130

理解Java Integer缓存策略

本文将介绍 Java 中 Integer 缓存相关知识。这是 Java 5 中引入一个有助于节省内存、提高性能特性。...首先看一个使用 Integer 示例代码,展示了 Integer 缓存行为。接着我们将学习这种实现原因和目的。你可以先猜猜下面 Java 程序输出结果。...Java 中 Integer 缓存实现 在 Java 5 中,为 Integer 操作引入了一个新特性,用来节省内存和提高性能。整型对象在内部实现中通过使用相同对象引用实现了缓存和重用。...以后,就可以使用缓存中包含实例对象,而不是创建一个新实例(在自动装箱情况下)。 实际上在 Java 5 中引入这个特性时候,范围是固定 -128 至 +127。...Java 语言规范中缓存行为 在 Boxing Conversion 部分Java语言规范(JLS)规定如下: 如果一个变量 p 值属于:-128至127之间整数(§3.10.1),true 和

75310

Java 中整型缓存机制

本文将介绍Java中Integer缓存相关知识。这是在Java 5中引入一个有助于节省内存、提高性能功能。首先看一个使用Integer示例代码,从中学习其缓存行为。...= integer4 Java中Integer缓存实现 在Java 5中,在Integer操作上引入了一个新功能来节省内存和提高性能。整型对象通过使用相同对象引用实现了缓存和重用。...以后,就可以使用缓存中包含实例对象,而不是创建一个新实例(在自动装箱情况下)。 实际上这个功能在Java 5中引入时候,范围是固定-128 至 +127。...Java语言规范中缓存行为 在Boxing Conversion部分Java语言规范(JLS)规定如下: 如果一个变量p值是: -128至127之间整数(§3.10.1) true 和 false...其他缓存对象 这种缓存行为不仅适用于Integer对象。我们针对所有的整数类型类都有类似的缓存机制。

88530

java map 缓存_缓存用于

大家好,又见面了,我是你们朋友全栈君。 缓存 什么是缓存? 平常开发项目中,多多少少都会使用到缓存,因为一些数据我们没有必要每次查询时候都去查询到数据库。...缓存使用场景: 在Java应用中,对于访问频率高,更新少数据,通常方案是将这类数据加入缓存中,相对从数据库中读取,读缓存效率会有很大提升。 在集群环境下,常用分布式缓存有Redis等。...但在某些业务场景上,可能不需要去搭建一套复杂分布式缓存系统,在单机环境下,通常是会希望使用内部缓存(LocalCache)。...使用map缓存 方案: 基于ConcurrentHashMap实现数据缓存,实现线程安全要求 SoftReference:当内存不够时候,GC会回收SoftReference所引用对象 SoftReference...对于Cache,我们希望被缓存对象最好始终常驻内存,但是如果JVM内存吃紧,为了不发生OutOfMemoryError导致系统崩溃,必要时候也允许JVM回收Cache内存,待后续合适时机再把数据重新

1.1K20

Java常量类缓存机制

(这个范围默认是-128到127)之间时,直接返回缓存一个列表,找一下缓存列表初始化地方: private static class IntegerCache { static...,在类加载时候用静态方法快进行了初始化,将缓存范围内值预先加载好放在数组中....可以看到对缓存范围上限数字是通过读取配置来设置,因此,Integer缓存范围是可以通过参数 -XX:AutoBoxCacheMax=size来设置....其他常量类缓存 这种缓存行为不仅适用于Integer对象。针对所有整数类型类都有类似的缓存机制。 ByteCache 用于缓存 Byte 对象, 固定范围[-128-127]....联系邮箱:huyanshi2580@gmail.com 更多学习笔记见个人博客——>呼延十 var gitment = new Gitment({ id: 'Java常量类缓存机制', //

1.1K20

02 java包装类型缓存机制

02 java包装类型缓存机制 Java 基本数据类型包装类型大部分都用到了缓存机制来提升性能。...Byte,Short,Integer,Long 这 4 种包装类默认创建了数值 [-128,127] 相应类型缓存数据,Character 创建了数值在 [0,127] 范围缓存数据,Boolean...Integer源码 可以看到 当我们需要转换值在 -128>=x<=127 这个区间 会采用堆中引用 不信看看下面的测试 测试 可以看到 俩个对象在jvm中内存地址是一样 从来说明 使用缓存数据...如果超出对应范围仍然会去创建新对象,缓存范围区间大小只是在性能和资源之间权衡。 两种浮点数类型包装类 Float,Double 并没有实现缓存机制。 下面我们来看一下问题。...因此,i1 直接使用缓存对象。而Integer i2 = new Integer(40) 会直接创建新对象。 因此,答案是 false 。你答对了吗?

16510

读过

为了记录自己度过,写个帖子总结一下,不定时更新。以前度过有些不记得了,就先记录一下我记得吧:) PS:现在读过(2016.4月以后),我会做读书总结。...以前看,会再抽时间回顾一下,做个简单总结。...跟数据挖掘相关我另写了一个帖子,可以参考这个: 【原】数据分析/数据挖掘/机器学习---- 必读书目 2017.11-12 基本框架搭成,做好之后看公司同不同意开源哈哈,加了两个月班,朝9晚11,...看完并总结---7.20前完成) Neural Networks:Tricks of the trade(看Chapter1--并总结----7.30前完成) 2016.6  Thinking in java...(看到一半)---7月主攻深度学习,先暂时放一下 Deep Learning(继续看两章) 失控 (看完) 2016.5 Thinking in Java(计划看1/3) Stanford UFLDL

1.2K70

爱奇艺Java缓存之路,你应该知道缓存进化史!

本文是上周去技术沙龙听了一下爱奇艺Java缓存之路有感写出来。先简单介绍一下爱奇艺java缓存道路发展吧。 ?...可以看见图中分为几个阶段: 第一阶段:数据同步加redis 通过消息队列进行数据同步至redis,然后Java应用直接去取缓存 这个阶段优点是:由于是使用分布式缓存,所以数据更新快。...缺点:进程内缓存无法像分布式缓存那样做到实时更新。由于java内存有限,必定缓存得设置大小,然后有些缓存会被淘汰,就会有命中率问题。...解决了一直不更新问题,但是依然没有解决实时刷新。 第五阶段: 外部缓存异步刷新 ? 这个阶段扩展了Guava Cache,利用redis作为消息队列通知机制,通知其他java应用程序进行刷新。...爱奇艺缓存发展也是基于此之上,通过对guava cache二次开发,让其可以进行java应用服务之间缓存更新。

1.4K31

java http缓存

HTTP/1.1中缓存目的是为了在很多情况下减少发送请求,也即直接返回缓存;同时在许多情况下可以不需要发送完整响应。...缓存如何工作 所有的缓存都用一套规则来帮助他们决定什么时候使用缓存副本提供服务(假设有副本可用情况下);一些规则在协议中有定义(HTTP协议1.0和1.1),一些规则由缓存管理员设置(浏览器用户或者代理服务器管理员...); 一般说来:遵循以下基本规则(不必担心,你不必知道所有的细节,细节将随后说明) 如果响应头信息:告诉缓存器不要保留缓存缓存器就不会缓存相应内容; 如果请求信息是需要认证或者安全加密,相应内容也不会被缓存...一个缓存副本如果含有以下信息:内容将会被认为是足够新 含有完整过期时间和寿命控制头信息,并且内容仍在保鲜期内; 浏览器已经使用过缓存副本,并且在一个会话中已经检查过内容新鲜度; 缓存代理服务器近期内已经使用过缓存副本...,并且内容最后更新时间在上次使用期之前; 够新副本将直接从缓存中送出,而不会向源服务器发送请求; 如果缓存副本已经太旧了,缓存服务器将向源服务器发出请求校验请求,用于确定是否可以继续使用当前拷贝继续服务

1.2K80

Java本地缓存

本地缓存通常由应用程序使用,可以提高应用程序性能和响应速度。 Map 在Java中,实现本地缓存通常使用key/value形式数据结构,可以选择使用Map集合来作为存储容器。...Guava Cache(也称为Guava缓存)是Google开源一个Java库,用于实现本地缓存。它是Guava项目的一部分,是Google对Java集合框架扩展和增强。...使用Caffeine后无需使用Guava Cache,从并发角度来讲,Caffeine明显优于Guava,原因是使用了Java 8最新StampedLock锁技术。...EhCache EhCache 是一个纯Java进程内缓存框架,具有快速、精干等特点,是Hibernate中默认CacheProvider。...Ehcache是一种广泛使用开源Java分布式缓存。主要面向通用缓存,Java EE和轻量级容器。

24521

Java高性能系统缓存最佳实践

2 缓存最佳实践 采用@Cacheable注解缓存命中率如何? 怎样才能提高缓存命中率? 缓存是否总能返回最新数据? 如果缓存返回了过期数据该怎么办?...只读缓存 VS 读写缓存 唯一区别:更新数据时,是否经过缓存。 Kafka使用PageCache,是个典型读写缓存。os会利用系统空闲物理内存给文件读写做缓存,这缓存叫做PageCache。...总结 按读写性质,可分为读写缓存和只读缓存,读写缓存实现复杂,且只在MQ等少数情况适用。 只读缓存适用范围更广,实现更简单。 在实现只读缓存时候,你需要考虑第一个问题是如何来更新缓存。...这里面有三种方法 在更新数据同时去更新缓存 定期来更新全部缓存缓存每个数据设置一个有效期,让它自然过期以达到更新目的 这三种方法在更新及时性上和实现复杂度这两方面,都是依次递减,你可以按需选择...对于缓存置换策略,最优策略一定是你根据业务来设计定制化置换策略,当然你也可以考虑LRU这样通用缓存置换算法。

93710

Java程序员必读9本

本文列出9本Java程序员界都是被认为很棒。当一个程序员开始初学Java时,他第一个问题应该是如何选择一本来作为指导学习Java。...本文列出九本是我个人非常喜欢Java书籍,当我有时间时候,我就会将它们捧在手里阅读。甚至有些我反复读过很多遍,每次重新读时候总会有新收获。因此这些也是大部分Java程序员喜欢书籍。...Head First Java ? Head First Java是所有编程或者Java初学者最适合书籍,我很喜欢轻松和寓教于乐Head First风格,这应该是最有意思关于Java。...Effective Java这本书也是一本我最喜欢。本书为领导开发Java集合框架和并发API包亚·布洛克 大神所著。...所以,你想进行性能调优,把这本书放到你书架上吧。 Java Puzzlers ? 再介绍一本 约亚·布洛克 大神写

1.1K31
领券