主要问题是EHCAHCE2.6.2是否基于ehcache配置驱逐过期元素;还是我必须按程序驱逐?
在阅读了文档的各个部分(数据寿命和缓存大小)之后,我们将当前配置设置为使用TTI/TTL和CacheManager级别MaxBytesLocalHeap=1024M。在设置了这个之后,我希望ehcache只能使用1GB的堆空间进行缓存,但是从测试(和prodcution)中,我们总是看到JVM堆已经满了(在我们的例子中是2GB)
Ehcache似乎不遵守我们设置的maxBytesLcoalHeap设置。当然,除非我(很可能)不明白这个设置实际上在做什么。
更新
ehcahce配置
<?xml version="1.0" encoding="UTF-8"?>
<ehcache>
<cache name="storeCache"
maxElementsInMemory="2500"
memoryStoreEvictionPolicy="LFU"
eternal="false"
timeToLiveSeconds="86400"
statistics="true">
<persistence strategy="none" />
</cache>
<cache name="courseCache"
maxElementsInMemory="100000"
memoryStoreEvictionPolicy="LFU"
eternal="false"
timeToLiveSeconds="43200"
statistics="true">
<persistence strategy="none" />
</cache>
<cache name="mtcIdCache"
maxElementsInMemory="500000"
memoryStoreEvictionPolicy="LFU"
eternal="false"
timeToLiveSeconds="3600"
statistics="true">
<persistence strategy="none" />
</cache>
<cache name="catentryCache"
maxElementsInMemory="500000"
memoryStoreEvictionPolicy="LFU"
eternal="false"
timeToLiveSeconds="3600"
statistics="true">
<persistence strategy="none" />
</cache>
<cache name="priceCache"
maxElementsInMemory="500000"
memoryStoreEvictionPolicy="LFU"
eternal="false"
timeToLiveSeconds="300"
statistics="true">
<persistence strategy="none" />
</cache>
<cache name="inventoryCache"
maxElementsInMemory="500000"
memoryStoreEvictionPolicy="LFU"
eternal="false"
timeToLiveSeconds="300"
statistics="true">
<persistence strategy="none" />
</cache>
<cache name="attributeCache"
maxElementsInMemory="500000"
memoryStoreEvictionPolicy="LFU"
eternal="false"
timeToLiveSeconds="300"
statistics="true">
<persistence strategy="none" />
</cache>
<cache name="partnerCache"
maxElementsInMemory="10000"
memoryStoreEvictionPolicy="LFU"
eternal="false"
timeToLiveSeconds="86400"
statistics="true">
<persistence strategy="none" />
</cache>
</ehcache>
**第二次更新**
使用DynaTrace,我们能够确定这是Spring集成的一个问题。具体地说,SimpleMessageStore似乎在保留对象并填充!
阅读文档时,我似乎应该使用MessageReaper,但即使在配置中包含了这一点,我也看到了同样的问题。我应该查看SimpleMessageStore的容量设置吗?
在您的ehcache配置中,我没有看到任何内存限制。如果要指定内存限制,则必须在ehcache标记上设置“MaxBytesLocalHeap”属性。
有关详细信息的Ehcache文档:http://Ehcache.org/documentation/configuration/cache-size#mixed-sizing-configurations。
del 清空指定缓存 await this.app.redis.del('name') flushall 清空所有缓存 await this.app.redis.flushall() lpop 从数组最左边删除一项 await this.app.redis.lpop('userList') rpop 从数组最右边删除一项 await this.app.redis.rpop('userList')
我正在将spring 4.1与ehcache一起使用。我可以用整数键缓存字符串值,但每当我尝试缓存对象时,它都会失败,不会出现任何错误。我保存在缓存中的模型(POJO)确实实现了hashcode、equals和tostring函数。 ehcache配置如下 Spring配置如下所示 我要缓存的类和方法 如果我将getPerson方法的返回值从Party对象替换为String,它就会工作。有什么想法
我有一个spring/hibernate项目,我试图通过ehcache和terracotta将二级缓存添加到hibernate。一切似乎都很好,我甚至可以在terracota控制台中看到我试图缓存的实体的条目。但根据数据库的统计数据和日志,根本没有缓存任何内容! 负载命中率是0%,负载统计也是0。我做错了什么? 这是我所做的,我通过maven添加了所需的罐子。 更改了我的Hibernate属性以启
我使用Drupal 7最新的开发版本。 我已经安装了清漆和过期模块并设置它们。它们工作得很好,但是我有一个关于从清漆中删除缓存的问题。 问题是如何只删除索引(主页)页面的清漆缓存,而不删除其他页面的缓存。我看了清漆日志,发现每次Drupal执行命令时,整个清漆缓存都被删除了 此命令由varnish模块或expire模块执行,它表示删除主页(索引)页的缓存。但正如我看到的,它正在删除varnish中
问题内容: 我正在使用二级缓存和查询缓存。我可以知道如何以编程方式清除所有缓存吗? 问题答案: 清除会话缓存使用 要清除二级缓存,请使用此代码段
当我调用我用注释的方法时,我知道缓存没有被使用,因为我在方法内部进行了打印,如果使用了缓存,就不应该打印它。 在日志中,我知道缓存正在初始化 我应该提到调用该方法的方法是常规Java