laraya / cachemanager
管理Xaraya的输出缓存系统
Conflicts
- xaraya/core: <2.4.1
README
这是什么?
CacheManager模块提供了一个管理界面来控制Xaraya的xarCache系统的设置。它还提供了钩子,允许缓存系统知道当模块被修改时,以便它可以相应地做出反应(基于事件的缓存过期/失效)。
输出缓存系统旨在减少在重负载条件下服务器系统需要执行的工作量。它保存Xaraya使用的输出,以便它不需要反复经过整个过程来重新生成相同的输出。目前,只有针对匿名用户的页面级别输出缓存和针对所有用户的块级别输出缓存可用。随着时间的推移,输出缓存系统也将支持所有用户的模块级别输出缓存,以及为匿名用户提供更高效的缓存页面服务。还计划为可以充分利用此功能的网站提供特定用户组的页面级别输出缓存。
请不要混淆输出缓存与Xaraya的变量或模板缓存系统。它们各不相同。随着时间的推移,它们可能会使用相同的缓存基础设施,但仍然会为不同的目的提供不同的缓存。对于xarCache的缓存不同点的更多内容,请参阅:http://xaraya.com/~jsb/cachingPoints.html
如何使用它?
CacheManager模块提供了几个管理xarCache系统和您的缓存输出文件的工具。这些工具组织在以下菜单链接下
- 清除缓存 - 允许您清除(删除)特定缓存键的输出缓存。页面输出缓存键由模块、类型和函数定义。块输出缓存键由模块、块实例ID和块组定义。
- 页面缓存 - 允许您为特定用户组启用页面缓存,设置无会话页面缓存,并配置自动缓存设置。无会话页面缓存允许在加载xarCore之前向没有会话的用户(新访客/首次访问者)提供缓存页面。自动缓存允许您配置您的网站以动态启用达到某些页面浏览阈值的无会话页面缓存。
- 块缓存 - 提供了一个统一的视图和管理点,用于管理所有块实例的输出缓存设置。
- 查看统计信息 - 显示不同缓存类型的缓存命中率和大小的摘要,以及输出缓存系统性能的详细信息。
- 修改配置 - 允许您设置输出缓存系统的值。将鼠标悬停在设置标题上以获取更多信息。
包含的块
CacheManager模块目前没有包含任何块。
包含的钩子
CacheManager模块提供创建、更新、删除和修改配置API钩子以及一个修改GUI钩子(目前仅用于将缓存配置管理添加到块实例修改页面)。要激活这些钩子,请转到管理员面板 -> 模块 -> 配置钩子,并点击cachemanager链接。选择您希望启用CacheManager钩子功能的模块(文章、类别、自动链接、块、html可能是合适的选择),然后点击“保存更改”按钮。一旦与CacheManager挂钩,当您创建、更新或删除模块项目,或修改模块的配置时,对CacheManager钩子的调用将刷新适当的缓存,以确保您的更改能够立即在您的网站上可用(不会被缓存输出文件所掩盖)。
附加信息
请注意,页面级别输出缓存不适用于需要向匿名用户提供服务动态内容的网站。例如:如果每个页面包含每秒都会变化的数据,并且必须以最新状态呈现给匿名观众,则不希望使用页面级别输出缓存。然而,如果可以接受以不超过1分钟旧的数据呈现数据,则可以启用页面级别输出缓存,并将缓存过期时间设置为60秒。如果您的网站每分钟服务相同页面100次,这将可测量地减少系统进行此操作的负载。
页面级别输出缓存还可能影响Xaraya某些方面的预期行为,因为缓存页面是在不加载模块的情况下提供服务的。例如:统计和opentracker模块将不会准确反映您的网站收到的总页面浏览量,因为在提供缓存页面时它们不会被调用。如果您的网站负载很重需要减轻,您可能希望考虑通过Web服务器日志文件或类似Hitbox或WebTrends Live实现的基于javascript的解决方案进行网站统计跟踪。这两种方法都可以在启用页面级别缓存的情况下准确工作。
块级别输出缓存没有相同的动态内容限制。它是专门为允许Xaraya在每个页面请求中完全加载核心和活动模块而构建的。块输出缓存可以在每个块实例的基础上进行配置,因此您可以有一些块实例是完全动态的(永不缓存),而其他实例则缓存不同的生存期。每个块实例的缓存可以配置为是否在用户(或用户组)和页面之间共享。这允许网站具有静态和动态页面混合的非常灵活的输出缓存行为,但代价是更高的固定成本(页面生成时间)。页面级别输出缓存可以减少网站页面生成时间65%到80%(视网站配置而定),而块级别输出缓存通常只能减少页面生成时间20%到30%。
页面级别和块级别输出缓存可以一起使用,以减少为同时为匿名和非匿名受众成员提供服务或具有不同页面和块级别输出缓存要求的网站上的负载,并提高页面生成时间。
待办事项列表
一般缓存相关
- 支持多站配置。
- 提供数据缓存API。
- 提供类似于SiteTools中模板缓存文件浏览器的输出缓存文件浏览器。
- 重构,重构,重构。
页面级别输出缓存相关
- 当可用时,支持在缓存键和页面之间将itemtype作为'name'。
- 提供调度程序、getfile/link集成以预填充输出缓存。
- 分析Slashdot和Google News对304 & ETag HTTP头部的使用,并根据结果重新工作我们的使用。
块/模块级别输出缓存相关
- 添加模块输出缓存功能,在适当的时候重用xarBlock*Cached函数。
- 在xarMod::guiFunc()中添加xarMod*Cached()调用。
- 为除块之外的其他模块提供管理员图形用户界面钩子,以配置每个模块的输出缓存设置。
更多信息
关于cachemanager模块的更多信息可以在以下地址找到:
- 在 Xaraya扩展和发布页面 的cachemanager扩展页面。点击页面底部的版本历史标签以获取最新发布信息。
- 关于cachemanager的相关教程和文档可以在 Xaraya文档 中找到。
** cachemanager概述**
版本 1.0.1 2006-04-12