河马cms缓存方法

Hippo cms cache method

Hippo cms 使用什么样的缓存?

我在官方页面上找到了一些关于包缓存的信息,但我不知道信息存储在哪里以及如何将它们取出。

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

Hippo CMS 在整体架构的几个不同级别实现了缓存。重要的是要记住 Hippo 堆栈有 3 个主要组件:

  1. 内容存储库(由 RDBMS 支持)
  2. Hippo 交付等级 (HST)
  3. 河马 CMS UI

我的假设是您可能正在尝试为应用程序的交付部分执行此操作。让我们采用自下而上的方法,看看有哪些不同类型的缓存可用。

  1. 内容存储库在 Bundle Cache 中缓存来自持久层的原始数据。这是 Apache Jackrabbit 提供的内存缓存,其大小可以在 repository.xml 中配置。如果您将其与 Hibernate 进行比较,您已经可以将其视为 L2 缓存,因为它由所有 JCR 会话共享。您可以在 corresponding documentation page.

  2. 上找到有关如何调整此缓存的更多信息
  3. Hippo 交付层使用从存储库配置派生的几个内存模型表示和四种不同的缓存:二进制缓存、Web 文件缓存、节点缓存和页面缓存。

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

    WebFiles 缓存也用于缓存来自存储库的静态资源,但它不是典型的用户内容,如 PDF 和图像,而是更多的开发人员静态 webapp 内容。

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

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

如您所见,有多个级别的缓存可用。你必须记住,如果你有多个 Hippo 实例 运行,由于 Hippo 中集群和缓存失效的工作方式,缓存将在所有单个实例上自动失效,所以最后你甚至可能不需要引入额外的缓存。

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