Hippo cms 使用什么样的缓存?
我在官方页面上找到了一些关于捆绑缓存的信息,但我不知道信息存储在哪里以及如何将它们取出。
主要问题是我需要在很多 Hippo cms 应用程序实例之间同步 L2cache。
Hippo CMS 在整个架构的几个不同级别实现了缓存。重要的是要记住,Hippo 堆栈有 3 个主要组件:
我的假设是您可能正在尝试为应用程序的交付部分执行此操作。让我们采用自下而上的方法,看看有哪些不同类型的缓存可用。
内容存储库将来自持久层的原始数据缓存在 Bundle Cache 中。这是 Apache Jackrabbit 提供的内存缓存,它的大小可以在 repository.xml 中配置。如果您将其与 Hibernate 进行比较,您已经可以将其视为 L2 缓存,因为它由所有 JCR 会话共享。您可以在相应的文档页面上找到有关如何调整此缓存的更多信息。
Hippo 交付层使用从存储库配置和四种不同的缓存派生的几个内存模型表示:二进制缓存、WebFiles 缓存、节点缓存和页面缓存。
二进制缓存用于缓存存储在内容存储库中的静态资源,例如 PDF 和图像。它可以配置为从内存或磁盘提供服务。二进制缓存在后台使用 Ehcache。有关如何配置或指定您自己的缓存的更多信息,请参见此处。
WebFiles Cache 还用于缓存存储库中的静态资源,但它不是典型的用户内容,如 PDF 和图像,而是更多的开发人员静态 webapp 内容。
节点缓存缓存从内容存储库检索到的各个 JCR 节点的内容。这包括实际内容项(文档)以及存储在存储库中的配置,例如网页布局和 URL 映射。当存储库中的原始节点被修改时,观察模式用于使节点缓存条目无效。
页面缓存缓存完整的聚合页面。这意味着只要不对构成页面的内容和配置进行任何修改,就可以直接从缓存中提供网页,而无需任何内容检索和页面聚合。一旦其中任何一个被修改,交付层就会通过观察得到通知,并使缓存页面无效。在修改的页面被聚合时到达的请求可以被提供一个陈旧的缓存条目,以保持响应时间较短。更多信息可以在这里找到。页面缓存基于ehcache,可以通过Spring配置进行配置。
如您所见,有多个级别的缓存可用。您必须记住,如果您有多个 Hippo 实例运行,缓存将在所有单个实例上自动失效,因为 Hippo 中的集群和缓存失效是如何工作的,因此最终您甚至可能不需要引入额外的缓存.
您可以在性能文档页面上找到更多信息。