Hippo cms缓存方法

时间:2015-08-19 10:10:40

标签: caching hippocms

Hippo cms使用什么样的缓存?

我在官方网页上发现了一些关于捆绑缓存的内容,但我不知道在哪里存储信息以及如何将它们删除。

主要问题是我需要在很多Hippo cms应用程序实例之间同步L2cache。

1 个答案:

答案 0 :(得分:1)

Hippo CMS在整个架构的几个不同级别实现了缓存。请记住,Hippo堆栈有3个主要组件,这一点非常重要:

  1. 内容存储库(由RDBMS支持)
  2. Hippo交付等级(HST)
  3. Hippo CMS UI
  4. 我的假设是您可能正在尝试为应用程序的交付部分执行此操作。让我们采用自下而上的方法,看看有哪些不同类型的缓存可用。

    1. 内容存储库从Bundle Cache中的持久层缓存原始数据。这是Apache Jackrabbit提供的内存缓存,其大小可以在repository.xml中配置。如果您将其与例如Hibernate进行比较,您可以将其视为L2缓存,因为它由所有JCR会话共享。您可以在corresponding documentation page上找到有关如何调整此缓存的更多信息。

    2. Hippo传递层使用从存储库配置和四个不同缓存派生的几个内存模型表示:二进制缓存,WebFiles缓存,节点缓存和页面缓存。

      二进制缓存用于缓存存储在内容存储库中的静态资源,例如PDF和图像。它可以配置为从内存或磁盘提供。二进制缓存在后台使用Ehcache。有关如何配置或指定自己的缓存的更多信息,请参见here

      WebFiles缓存还用于缓存存储库中的静态资源,但通常不是像PDF和图像这样的用户内容,而是开发人员静态webapp内容。

      节点缓存缓存从内容存储库中检索的各个JCR节点的内容。这包括实际内容项(文档)以及存储在存储库中的配置,例如网页布局和URL映射。观察模式用于在修改存储库中的原始节点时使节点缓存条目无效。

      页面缓存缓存完整的聚合页面。这意味着只要不对构成页面的内容和配置进行任何修改,就可以直接从缓存中提供网页而无需任何内容检索和页面聚合。一旦修改了这些中的任何一个,就会通过观察通知交付层,并使缓存的页面无效。在聚合修改的页面时到达的请求可以被提供给陈旧的高速缓存条目以保持响应时间低。可以找到更多信息here。页面缓存基于ehcache,可以通过Spring配置进行配置。

    3. 正如您所看到的,有几种级别的缓存可用。您必须记住,如果您运行多个Hippo实例,由于群集和缓存失效在Hippo中的工作原理,缓存将在所有单个实例上自动失效,因此最终您甚至可能不需要引入其他缓存

      您可以在performance documentation page找到更多信息。