Ehcache(04)——设置缓存的大小

本文详细介绍了Ehcache中如何设置缓存大小,包括CacheManager和Cache级别的内存、非堆内存和磁盘存储限制。讲解了maxBytesLocalHeap、maxBytesLocalOffHeap、maxBytesLocalDisk等参数的作用,以及如何通过百分比形式指定大小。同时阐述了大小衡量机制,强调了SizeOf在计算元素大小时的递归性质,并提供了多个配置示例。
摘要由CSDN通过智能技术生成

设置缓存的大小

 

目录

1     CacheManager级别

2     Cache级别

3     大小衡量

4     配置大小示例

 

       缓存大小的限制可以设置在CacheManager上,也可以设置在单个的Cache上。我们可以设置缓存使用内存的大小,也可以设置缓存使用磁盘的大小,但是使用堆内存的大小是必须设置的,其它可设可不设,默认不设就是无限制。在设置缓存大小的时候,我们可以设置缓存使用某一个存储器的最大字节数,也可以设置缓存在某一个存储器上最多存放元素的数量。

 

1       CacheManager级别

       CacheManager级别有三个属性可以分别用来限制三种存储器缓存信息的大小,其控制的都是字节数,分别是maxBytesLocalHeapmaxBytesLocalOffHeapmaxBytesLocalDiskCacheManager级别限制的大小是其内所有的Cache共享的。

       maxBytesLocalHeap是用来限制缓存所能使用的堆内存的最大字节数的,其单位可以是KMG,不区分大小写。默认是0,表示不限制。但是当我们没有指定CacheManager级别的maxBytesLocalHeap时,我们必须在每一个Cache上指定maxBytesLocalHeapmaxEntriesLocalHeap

       maxBytesLocalOffHeap是用来限制缓存所能使用的非堆内存的最大字节数,其单位也可以是KMG。默认是0,表示不限制。但是当我们在CacheManager级别指定了maxBytesLocalOffHeap时就会隐式的使所有Cache级别的overflowToOffHeaptrue,在Cache级别使用该属性时只会使当前CacheoverflowToOffHeaptrue如果此时不需要overflowToOffHeap的话,那么我们需要在Cache级别显示的指定overflowToOffHeapfalse。只有企业版的Ehcache才能使用非堆内存存储缓存信息。

       maxBytesLocalDisk是用来限制缓存所能使用的磁盘的最大字节数的,其单位可以是KMG。默认是0,表示不限制。只有在单机环境下才可以使用本地磁盘,分布式环境下是不可以使用的。另外,这个设置只适用于临时将缓存内的信息写入到磁盘的情况,对于持久化缓存信息到磁盘的情况是不适用的。Cache级别的maxBytesLocalDisk同样如此。当我们在CacheManager级别指定了maxBytesLocalDisk时会隐式的指定所有CacheoverflowToDisktrue,而Cache级别只会使当前CacheoverflowToDisktrue

       下面是一个在CacheManager级别指定缓存大小限制的示例,在该示例中我们指定了该CacheManager所能使用的最大堆内存是500M,最大非堆内存是2G,使用本地磁盘的最大字节数是50G

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值