TanzCMS开源CMS系统

缓存与性能开发规范

元数据缓存、模板缓存、页面缓存、标签缓存和性能验收规则

更新:2026-05-31 03:20:44 浏览:6

缓存与性能开发规范

缓存是性能能力,也是状态一致性能力。谁改变结构,谁负责失效。

一、缓存类型

类型 场景
元数据缓存 栏目、模型、字段、系统设置
模板编译缓存 TanzCMS .html 模板编译结果
模板标签缓存 标签查询结果
页面响应缓存 游客可复用页面
菜单缓存 后台菜单、会员菜单、插件菜单

二、失效时机

以下变化必须清理相关缓存:

  • 栏目新增、编辑、删除、排序和外链变化。
  • 内容发布、更新、删除。
  • 模型和字段变化。
  • 系统设置变化。
  • 插件启用、禁用、安装、卸载。
  • 会员菜单变化。
  • 订单、支付、购买状态会影响前台按钮时。

三、页面缓存边界

游客公开页面可以缓存。会员中心、登录注册、找回密码、含真实 CSRF 或个人身份的页面不进入普通页面响应缓存。

不要缓存带真实 _token 的完整会员认证页面。

四、标签性能

模板标签应限制最大返回数量。列表页不要在每条内容中重复执行重查询。

推荐:

  • 批量查询。
  • 只查必要字段。
  • 使用索引。
  • 合理缓存。
  • 明确空数据分支。

五、静态资源

模块资源发布到 public/assets/modules/{code}/,插件资源发布到 public/assets/plugins/{code}/。线上访问静态资源时,应由 Web 服务器或静态响应层处理缓存头。

六、慢请求排查

慢页面优先检查:

  • 是否命中页面缓存。
  • 模板是否重复查询。
  • 标签是否缺少限制。
  • 数据库是否缺索引。
  • Session 是否造成串行等待。
  • 静态资源是否 404 或反复动态处理。

七、上线验收

性能验收不只看首页。至少覆盖首页、栏目页、详情页、搜索页、会员中心、后台页和插件关键页。

缺少样本时不能说明性能达标,只能说明还没有覆盖对应路径。