缓存
JAVA道人
我宁愿做错,也不愿什么都不做.
展开
-
caffeine的缓存
caffeine尝试 3.00版本之后就是jdk11,之前是8 Caffeine是基于Java 8的高性能,接近最佳的缓存工具库。Caffeine使用Google Guava启发的API提供内存缓存。所以它的使用成本较低,跟Guava的API大致一致。 它主要有以下几个功能: 自动将条目自动加载到缓存中,可以选择同步或异步加载 基于频率和新近度超过最大值时基于大小的逐出 自上次访问或上次写入以来测得的基于时间的条目到期 发生第一个陈旧的条目请求时,异步刷新 键自动包装在弱引用中 值自原创 2021-12-04 14:37:44 · 956 阅读 · 0 评论 -
ehcache缓存的配置文件详解
参数说明: <diskStore>:当内存缓存中对象数量超过maxElementsInMemory时,将缓存对象写到磁盘缓存中(需对象实现序列化接口)。 <diskStore path="">:用来配置磁盘缓存使用的物理路径,Ehcache磁盘缓存使用的文件后缀名是*.data和*.index。 name:缓存名称,cache的唯一标识(ehcache会把这个cach...原创 2018-04-08 16:23:58 · 1018 阅读 · 0 评论 -
缓存雪崩的解决之道
缓存雪崩是指缓存大范围失效,导致连接又直连数据库原创 2018-04-10 22:48:28 · 156 阅读 · 0 评论 -
ehcache和枚举的结合
为什么用枚举?简单易用.比策略模式要简单清晰.我项目里就这几个地方用缓存. 先上xml <?xml version="1.0" encoding="UTF-8"?> <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ht...原创 2019-07-02 16:30:14 · 148 阅读 · 0 评论 -
Ehcache的shutdown
1.你要主动调用CacheManager的CacheManager.shutdown()方法 2.如果在web程序里,ehcache提供了一个lisener net.sf.ehcache.constructs.web.ShutdownListener 该listener会关闭所有的CacheManager 3.System.setProperty("net.sf.ehcache.enab...原创 2019-07-02 16:21:29 · 395 阅读 · 0 评论 -
ehcache2.10.X的在线文档
http://www.ehcache.org/generated/2.10.4/html/ehc-all/ ehcache3.X网站慢的跟狗屎一样,2.10.x的还行,比较快. 下面是xml配置: This XML file does not appear to have any style information associated with it. The document tree ...原创 2019-07-02 16:47:01 · 228 阅读 · 0 评论 -
java.io.tmpdir究竟是哪里?
在ehcache里的磁盘路径默认就是java.io.tmpdir,那这究竟是哪里呢? 其实你可以这样做: System.out.println(System.getProperty("java.io.tmpdir")); 那么windows的结果大概就是这里:C:\Users\Administrator\AppData\Local\Temp linux的结果是/tmp ...原创 2019-07-02 16:21:47 · 351 阅读 · 0 评论 -
非正常关闭时Ehcache磁盘存储下次不能使用.
在使用ehcache时,我们会使用 diskPersistent="true" 来保证下次虚拟机重启时,缓存数据依然可以使用. 然而当我们ctrl+C或者直接杀死进程时甚至于断电等非正常关闭时,ehcache的缓存就不能再使用了.原因在于: 在ehcache的源码里,DiskStorageFactory类里,硬盘存储初始化时有这段代码: if (getDataFile().last...原创 2019-07-02 16:21:38 · 730 阅读 · 0 评论 -
ehcache刷新到磁盘的结果错误
在使用ehcache做插入时,希望存到磁盘上. 但是一重启,根本读不到我想要的数据.发现根本没有存进去.配置什么的都没有毛病. 最终发现问题出在我写的代码上: 源代码是这样写的: 缓存的key是userid,值是一个map.然后把map里存的是其他相关value. 我先去缓存查看,然后用map接受,如果不存在,就新建一个map,放到缓存里,由于知晓内存地址,所以我直接修改了map,在内存...原创 2019-07-02 16:46:04 · 155 阅读 · 0 评论