Ehcache Vs静态地图缓存实现

时间:2011-05-25 07:21:30

标签: java hibernate caching jpa-2.0 ehcache

我有几个表中包含很少的条目,它们永远不会动态更改。所以我想将整个表缓存在内存中以减少对DB的负载。我可以通过静态Map轻松实现这一点,并在静态块中填充地图。

我想知道Ehcache + hibernate是否可以通过更有效的方式实现相同的目标?

2 个答案:

答案 0 :(得分:7)

Ehcache比地图有更多功能:

  • 限制内存中元素的最大数量
  • 溢出到磁盘(如果超过上述数量)
  • 设置元素的生存时间和空闲时间
  • 允许在群集中进行复制

如果您不需要其中任何一个,您可以安全地使用地图 - 它将更容易配置。

答案 1 :(得分:6)

真正的二级缓存优于静态映射的优势在于,您仍然可以通过保持定义,访问和遍历实体的相同方式来获得内存访问的优势:使用Hibernate会话(或实体)经理)。

您可以与其他实体保持关系(即使没有缓存);您可以使用查询缓存并仍然对这些实体执行查询(这些查询的结果也将被缓存)。

简而言之,它是透明的,提供了更多选项,如Bozho所说,并且更容易使用,因为缓存的使用方式与其他实体的使用方式相同。