ehcache 简介


ehcache 简介

 

官网:https://www.ehcache.org/documentation/3.8/index.html

 

 

***************************

基本特性

 

ehcache是开源的缓存技术,支持进程内缓存、分布式缓存(存储在远程 Terracottaserver上);

缓存数据可存储在heap、offheap、磁盘、远程服务器Terracotta server上;

企业版Terracotta BigMemory Max提供管理监控平台、快速重启恢复、安全等功能

For applications requiring complete enterprise functionality including management
monitoring console (TMC), fast-restartable store (FRS), security, plus more -
along with worldwide professional support, please use Terracotta BigMemory Max

 

 

***************************

缓存存储

 

on-heap store:java虚拟机内存存储,可用jvm 垃圾回收器回收

off-heap store:使用系统内存存储,可用-XX:MaxDirectMemorySize=num限制off-heap大小

disk store:使用磁盘存储缓存数据

clusterd store:使用远程服务器存储,可实现分布式缓存,不可以disk store同时使用

 

**********************

copier 使用

 

针对on-heap使用,on-heap默认存储对象key、vlue的引用,如果要存储对象的值value,需要配置copier,配置方法如下:

                    

如果cache、cache manager同时配置,使用cache的配置;

如果cache没有配置copier,on-heap存储缓存value时,在cache manager查找最匹配的copier

 

内置copier

                    

 

**********************

序列化

 

除on-heap,off-heap、disk、cluster store都需要执行序列化、反序列化操作,配置方法如下:

                    

如果在cache、cache manager同时配置,使用cache的配置;

如果cache没有配置,在cache manager处查找最合适的序列化配置

 

内置序列化器

                    

 

**********************

使用规则

 

on-heap、off-heap、disk store、clustered store都可以单独使用;

#配置使用2GB的off-heap内存
CacheConfigurationBuilder.newCacheConfigurationBuilder(Long.class, String.class, 
  ResourcePoolsBuilder.newResourcePoolsBuilder().offheap(2, MemoryUnit.GB)).build(); 

 

on-heap的单位可为entries、size,其余存储空间需设置为size

#heap 存储10个键值对
ResourcePoolsBuilder.heap(10); 
ResourcePoolsBuilder.newResourcePoolsBuilder().heap(10, EntryUnit.ENTRIES); 

#heap 使用的空间为 10MB
ResourcePoolsBuilder.newResourcePoolsBuilder().heap(10, MemoryUnit.MB); 

 

disk store需要配置数据存储路径

PersistentCacheManager persistentCacheManager = CacheManagerBuilder.newCacheManagerBuilder() 
  .with(CacheManagerBuilder.persistence(new File(getStoragePath(), "myData")))   //数据存储路径
  .withCache("persistent-cache", CacheConfigurationBuilder.newCacheConfigurationBuilder(Long.class, String.class,
    ResourcePoolsBuilder.newResourcePoolsBuilder().disk(10, MemoryUnit.MB, true)) 
  )
  .build(true);

 

混合配置

                    

必须设置heap存储;

disk store、clustered store不能同时使用;

空间大小:on-heap store < off-heap store < disk-store或者on-heap store < off-heap store < clustered store

 

混合配置可用组合如下

                                  

 

 

***************************

缓存刷新策略

 

no expiry:缓存永不失效

ttl(time-to-live):缓存创建到失效的时间

tti(time-to-idle):缓存空闲达到某个值后失效

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值