标签: ehcache

"堆上"和"堆外"之间的区别

Ehcache 讨论了堆上和堆外内存.有什么不同?使用什么JVM args来配置它们?

java memory heap ehcache

133
推荐指数
4
解决办法
8万
查看次数

如何区分ehcache中的生存时间和空闲时间

关于ehache的文档说:

timeToIdleSeconds: Sets the time to idle for an element before it expires.
i.e. The maximum amount of time between accesses before an element expires

timeToLiveSeconds: Sets the time to live for an element before it expires.
i.e. The maximum time between creation time and when an element expires.
Run Code Online (Sandbox Code Playgroud)

我理解timeToIdleSeconds

但这是否意味着在创建和首次访问缓存项后,timeToLiveSeconds不再适用?

java ehcache

99
推荐指数
3
解决办法
5万
查看次数

Spring Cache @Cacheable - 从同一个bean的另一个方法调用时不工作

从同一个bean的另一个方法调用缓存方法时,Spring缓存不起作用.

这是一个以清晰的方式解释我的问题的例子.

组态:

<cache:annotation-driven cache-manager="myCacheManager" />

<bean id="myCacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager">
    <property name="cacheManager" ref="myCache" />
</bean>

<!-- Ehcache library setup -->
<bean id="myCache"
    class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" p:shared="true">
    <property name="configLocation" value="classpath:ehcache.xml"></property>
</bean>

<cache name="employeeData" maxElementsInMemory="100"/>  
Run Code Online (Sandbox Code Playgroud)

缓存服务:

@Named("aService")
public class AService {

    @Cacheable("employeeData")
    public List<EmployeeData> getEmployeeData(Date date){
    ..println("Cache is not being used");
    ...
    }

    public List<EmployeeEnrichedData> getEmployeeEnrichedData(Date date){
        List<EmployeeData> employeeData = getEmployeeData(date);
        ...
    }

}
Run Code Online (Sandbox Code Playgroud)

结果:

aService.getEmployeeData(someDate);
output: Cache is not being used
aService.getEmployeeData(someDate); 
output: 
aService.getEmployeeEnrichedData(someDate); 
output: Cache is not being used
Run Code Online (Sandbox Code Playgroud)

getEmployeeData方法调用使用缓存employeeData …

java spring caching ehcache

83
推荐指数
6
解决办法
6万
查看次数

另一个未命名的CacheManager已经存在于同一个VM中(ehCache 2.5)

这是我运行junit测试时会发生的事情......

Another CacheManager with same name 'cacheManager' already exists in the same VM. Please 
provide unique names for each CacheManager in the config or do one of following:
1. Use one of the CacheManager.create() static factory methods to reuse same
   CacheManager with same name or create one if necessary
2. Shutdown the earlier cacheManager before creating new one with same name.

The source of the existing CacheManager is: 
 DefaultConfigurationSource [ ehcache.xml or ehcache-failsafe.xml ]
Run Code Online (Sandbox Code Playgroud)

异常背后的原因是什么?可以同时运行多个cacheManager吗?

这就是我使用Sping 3.1.1配置cachManager的方法.它将cacheManager的范围明确设置为"singleton"

<ehcache:annotation-driven />

<bean …
Run Code Online (Sandbox Code Playgroud)

junit spring ehcache

73
推荐指数
6
解决办法
7万
查看次数

多个方法参数的@Cacheable键

春季文档:

@Cacheable(value="bookCache", key="isbn")
public Book findBook(ISBN isbn, boolean checkWarehouse, boolean includeUsed)
Run Code Online (Sandbox Code Playgroud)

如何指定@Cachable使用isbncheckWarehouse作为键?

java spring ehcache

66
推荐指数
3
解决办法
11万
查看次数

用Hibernate + Spring缓存 - 一些问题!

我正致力于使用Spring 3和Hibernate 3.6开发Web应用程序.目前我试图了解如何使用Spring和Hibernate进行缓存.我找到了一些关于使用Hibernate缓存的消息来源以及一些关于Spring的消息,我现在尝试将我的信息结合在一起.我仍然对这两个框架都有一些问题,如果有人能够回答它们或告诉我这里列出的事实是否正确,我会很高兴.

大多数时候,简短的答案(是/否)就足够了.我认为这个列表对其他人也很有用,他们想要了解spring和hibernate的缓存是如何工作的.

General

1) Hibernate支持以下缓存:第一级缓存,第二级缓存,查询缓存

2) Spring本身支持以下缓存可能性:只是方法缓存

1st Level Cache

3)第一级缓存是每个Hibernate应用程序的一部分.

4)为每个休眠会话创建第一级缓存.

5)第一级缓存中保存了什么?对象或只是其属性的值?查询及其结果?

2nd Level Cache

6)我发现:每个应用程序使用ONCE二级缓存.那不是假的吗?是不是每次sessionfactory使用ONCE?和:多个sessionfactorys =多个第二级缓存可能吗?

7)在二级缓存中保存的内容:在我看来,只是属于一条记录的值,而不是对象本身.

8)当存储来自二级缓存中的一个记录的值时,它是否可以存储相关值(来自通过外键连接的对象)?

9)更新二级缓存中一个对象的值时,是否可以更新缓存中与其连接的对象的值?

10)当一个对象的值发生变化时,如何更新二级缓存?冲洗?我可以只更新缓存的一部分,还是必须更新整个缓存?

11)二级缓存在哪里有意义,哪里不存在?

12)缓存模式:每个缓存模式都提供不同的缓存策略吗?例如,对于缓存模式"只读",不需要同步数据库和缓存吗?其他缓存模式是否提供同步?我认为同步必须由开发者自己完成?

SessionFactory

13)查询缓存和二级缓存有什么区别?在我看来:在查询缓存中,结果集被保存,但没有使用它们的值,只有它们的ID.当再次使用查询并且结果集仍然"正确"时,将从二级缓存中查询属于id的值

14)对于查询缓存,必须使用二级缓存?

15)查询缓存哪里有意义,哪里不存在?

Query Cache

16) Spring是否提供了比方法缓存更多的缓存可能性?

17)方法缓存没有与hibernate缓存相关联

18)但是:对于方法缓存,第二级是必要的,比如ehcache(也可以被hibernate使用)

19)可以在没有数据库查询的情况下使用方法缓存吗?

Spring

20)如果使用ehcache作为二级缓存的hibernate和用于方法缓存的spring的ehcache,我可以使用相同的ehcache-instance吗?是否有可能混淆了什么?

21)当使用第一级缓存和第二级缓存时,它们会混淆吗?在查询数据库时,结果来自哪里,第一级或第二级缓存?第一级缓存是否与二级缓存一起使用?

22)其他任何可以通过使用我提到的缓存混淆的东西?:-)

谢谢你的回答,不管是什么问题!:-)

spring caching hibernate ehcache second-level-cache

63
推荐指数
1
解决办法
1万
查看次数

hazelcast vs ehcache

如你在标题中看到的那样,问题很清楚,我将很高兴听到你对adv./disadv的看法.他们之间的差异.

更新: 我决定使用Hazelcast,因为它具有分布式缓存/锁定机制等优点,并且在适应您的应用程序时非常容易配置.

ehcache hazelcast

59
推荐指数
5
解决办法
3万
查看次数

在Tomcat中重新部署应用程序时发生内存泄漏

当我在tomcat中重新部署我的应用程序时,我遇到以下问题:

 The web application [] created a ThreadLocal with key of type
 [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@10d16b])
 and a value of type [com.sun.xml.bind.v2.runtime.property.SingleElementLeafProperty]
(value [com.sun.xml.bind.v2.runtime.property.SingleElementLeafProperty@1a183d2]) but 
 failed to remove it when the web application was stopped. 
 This is very likely to create a memory leak.
Run Code Online (Sandbox Code Playgroud)

另外,我在我的应用程序中使用ehcache.这似乎也导致以下异常.

     SEVERE: The web application [] created a ThreadLocal with key of type [null] 
     (value [com.sun.xml.bind.v2.ClassFactory$1@24cdc7]) and a value of type [java
     .util.WeakHashMap... 
Run Code Online (Sandbox Code Playgroud)

ehcache似乎创建了一个弱哈希映射,我得到的消息是,这很可能会造成内存泄漏.

我在网上搜索并发现了这个, http://jira.pentaho.com/browse/PRD-3616但是我没有这样的服务器访问权限.

如果这些警告有任何功能影响或是否可以忽略,请告诉我?我在tomcat管理器中使用了"查找内存泄漏"选项,它说"没有发现内存泄漏"

java memory-leaks ehcache

45
推荐指数
2
解决办法
6万
查看次数

使用Ehcache多播获取"无法分配请求的地址"java.net.SocketException

获取java.net.SocketException试图启动一个多播提供程序时:

2013-09-11 11:45:44,204 [main] ERROR net.sf.ehcache.distribution.MulticastRMICacheManagerPeerProvider: Error starting heartbeat. Error was: Can't assign requested address
java.net.SocketException: Can't assign requested address
at java.net.PlainDatagramSocketImpl.join(Native Method)
at java.net.AbstractPlainDatagramSocketImpl.join(AbstractPlainDatagramSocketImpl.java:178)
at java.net.MulticastSocket.joinGroup(MulticastSocket.java:319)
at net.sf.ehcache.distribution.MulticastKeepaliveHeartbeatReceiver.init(MulticastKeepaliveHeartbeatReceiver.java:88)
at net.sf.ehcache.distribution.MulticastRMICacheManagerPeerProvider.init(MulticastRMICacheManagerPeerProvider.java:95)
Run Code Online (Sandbox Code Playgroud)

java multicast ehcache ipv6 multicastsocket

37
推荐指数
3
解决办法
3万
查看次数

你好世界的例子为ehcache?

ehcache是​​一个非常可配置的野兽,示例相当复杂,通常涉及多层接口.

有没有人遇到过最简单的例子,它只是在内存中缓存类似单个数字的东西(不是分布式的,没有XML,只有尽可能少的java行).然后将该数字缓存60秒,然后下一个读取请求使其获得新值(例如,通过调用Random.nextInt()或类似)

使用单例和一些同步来编写我们自己的缓存是否更快/更容易?

请不要春天.

ehcache

34
推荐指数
2
解决办法
3万
查看次数