外出旅行、冬季保暖得常备户外袜、速干袜、加厚袜子哦。

猛戳乐途驿站http://zhoupa1188.taobao.com抢购品牌男女式加厚户外袜子,coolmax、全棉、保暖、吸汗、速干、登山、徒步袜子。满10包邮


谢炜的cnblogs

CSDN上比较完整:http://hi.csdn.net/xiefeifeihu

导航

ehCache配置介绍


外出旅行、冬季保暖得常备户外袜、速干袜、加厚袜子哦。

猛戳乐途驿站http://zhoupa1188.taobao.com抢购品牌男女式加厚户外袜子,coolmax、全棉、保暖、吸汗、速干、登山、徒步袜子。满10包邮


ehcache 的配置可以通过在 XML文件中声明,或者通过构造函数中指定参数进行程序控制。

两种方法都能很好的支持。不过将缓存的配置和实际代码分离开来更好一些,这有以下几个好处:

  • 便于在一个地方保存所有的配置信息

缓存使用内存或磁盘空间需要仔细调整和规划,你可以在一个配置文件中获取所有信息。当然你也可以都在代码中搞定,但检查起来就没那么方便。

  • 便于在部署时修改缓存的配置
  • 配置错误便于在启动时被发现,以免在运行时才暴露出错误
  • 如果存在一个缺省配置,那么它总是会被装载并生效

虽然缺省配置不是必需的,但如果没有加载缺省配置,以编程方式创建命名cance(created by name) 就会产生错误。

动态修改缓存配置

缓存服务启动之后,其配置一般不能再改变。但从 ehcache2.0之后,特定的缓存配置参数可以在运行时动态修改。在当前版本的ehcache,中包含以下几个参数。

  • timeToLive
    一个被缓存的对象(Element)保存在缓存中的最大秒数,无论其是否被使用。超过这个时间限制,该对象将无法从缓存中获取。默认值是0,表示没有限制。
  • timeToIdle
    一个被缓存的对象(Element)保存在缓存中未被访问的最大秒数。超过这个时间限制,该对象将无法从缓存中获取。默认值是0,表示没有限制。
  • 本地缓存参数 maxEntriesLocalHeap, maxBytesLocalHeap, maxBytesLocalOffHeap, maxEntriesLocalDisk, maxBytesLocalDisk.
  • memory-store eviction policy (内存驱逐策略)
  • CacheEventListeners 可以动态增或删除

注意Cache 的 "eternal" (永恒)属性,如果设置为true,重置 "timeToLive" 和 timeToIdle" 就都没用了,任何对象都不会过期。

下面的例子演示如何动态修改使用中的缓存。

Cache cache = manager.getCache("sampleCache");

CacheConfiguration config = cache.getCacheConfiguration();

config.setTimeToIdleSeconds(60);

config.setTimeToLiveSeconds(120);

config.setmaxEntriesLocalHeap(10000);

config.setmaxEntriesLocalDisk(1000000);

缓存参数也可以被冻结,防止修改:

Cache cache = manager.getCache("sampleCache");

cache.disableDynamicFeatures();

在 ehcache.xml中,将<ehcache>的dynamicConfig 属性设置为"false", 可以禁止动态修改缓存参数

动态修改分布式缓存配置

和独立缓存一样,操纵分布式缓存的配置也需要通过cache.getCacheConfiguration()方法获得 CacheConfiguration 对象,通过它的一系列 set 方法进行修改。

下表提供了如何动态修改一个Terracotta 集群的公共配置选项的一些信息。表头的"Scope"字段表示配置的变更能够在哪里生效,可以是以下几个值。

  • Client – The Terracotta client where the CacheManager runs.
  • TSA – The Terracotta Server Array for the cluster.
  • BOTH – Both the client and the TSA.

注意 "Both" 是分布式含义,也就是说对所有客户端都会生效

Configuration Option Dynamic Scope Notes
Cache name NO TSA
Nonstop NO Client Enable High Availability。支持高可靠性
Timeout YES Client For nonstop.
Timeout Behavior YES Client For nonstop.
Immediate Timeout When Disconnected YES Client For nonstop.
Time to Idle YES BOTH
Maximum Entries or Bytes in Local Stores YES Client This and certain other sizing attributes that are part of ARC may be pooled by the CacheManager, creating limitations on how they can be changed.
Time to Live YES BOTH
Maximum Elements on Disk YES TSA
Persistence Strategy N/A N/A
Disk Expiry Thread Interval N/A N/A
Disk Spool Buffer Size N/A N/A
Overflow to Off-Heap N/A N/A
Maximum Off-heap N/A N/A Maximum off-heap memory allotted to the TSA.
Eternal YES BOTH
Clear on Flush NO Client
Copy on Read NO Client
Copy on Write NO Client
Memory Store Eviction Policy NO Client
Statistics YES Client Cache statistics. Change dynamically withcache.setStatistics(boolean) method.
Logging NO Client Ehcache and Terracotta logging is specified in configuration. However,cluster events can be set dynamically.
Consistency NO Client It is possible to switch to and from bulk mode.
Synchronous Writes NO Client

 

如果一个L1 Cache 被设置成了非动态的,要让他的配置变更生效就比较麻烦,要做以下操作。删除已存在的cache,用新的配置新建一个同名cache,当然要在同一个 CacheManager 中。 重新启动CacheManager. 亲,新配置里的Cache名字一定要和就配置一样。

posted on 2012-12-14 16:08  飞飞狐  阅读(465)  评论(0编辑  收藏  举报

外出旅行、冬季保暖得常备户外袜、速干袜、加厚袜子哦。

猛戳乐途驿站http://zhoupa1188.taobao.com抢购品牌男女式加厚户外袜子,coolmax、全棉、保暖、吸汗、速干、登山、徒步袜子。满10包邮