继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Hibernate4 + Ehcache 配置问题

quincyye
关注TA
已关注
手记 235
粉丝 168
获赞 3550

4.0配置如下:
<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>
3.3配置如下:
<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="cache.provider_class ">org.hibernate.cache.EhCacheProvider</property>

一直不理解ehcache中 timeToIdleSeconds和 timeToLiveSeconds 这两个配置的区别,特意找到官方文档看了一下,基本理解了它的意思。
首先看一段原文:

What is the difference between TTL, TTI, and eternal?
These are three cache attributes that can be used to build an effective eviction configuration.
It is advised totest and tune these values to help optimize cache performance.
TTI timeToIdleSeconds is the maximumnumber of seconds that an element can exist in the cache without being accessed,
while TTL timeToLiveSeconds is the maximum number of seconds that an element can exist in the cache whether or not is has been accessed.
If the eternal flag is set, elements are allowed to exist in the cache eternallyand none are evicted.
The eternal setting overrides any TTI or TTL settings. These attributes are set for the entire cache in the configuration file. If you want to set them per element, you must do it programmatically

主要意思:

1.TTI timeToIdleSeconds is the maximum number of seconds that an element can exist in the cache without being accessed:
TTI用于设置对象在cache中的最大闲置时间,就是 在一直不访问这个对象的前提下,这个对象可以在cache中的存活时间。
2.TTL timeToLiveSeconds is the maximum number of seconds that an element can exist in the cache whether
or not is has been accessed.
TTL用于设置对象在cache中的最大存活时间,就是 无论对象访问或是不访问(闲置),这个对象在cache中的存活时间。
3.If the eternal flag is set, elements are allowed to exist in the cache eternally and none are evicted。
当配置了 eternal ,那么TTI和TTL这两个配置将被覆盖,对象会永恒存在cache中,永远不会过期。

打开App,阅读手记
3人推荐
发表评论
随时随地看视频慕课网APP