缓存策略:多层性能优化

本文阐述我们如何通过在各层级实施缓存来实现全球快速页面加载。

问题:未缓存的请求速度慢

若无缓存,每次页面加载都需要:

  • 数据库查询:获取产品数据、库存水平、价格信息

  • API调用:调用外部服务获取运费、支付信息

  • 计算处理:价格计算、可用性检查

  • 图片加载:产品图片、缩略图

缓存通过存储结果供重复使用,消除了重复工作。

解决方案:多层缓存

我们在五个层级实施缓存:

  1. 浏览器缓存:用户设备存储静态资源
  2. CDN缓存:CloudFront边缘节点全球缓存内容
  3. 应用缓存:Valkey存储频繁访问的数据
  4. 数据库缓存:Valkey置于数据库前端
  5. AI缓存:DeepSeek缓存系统提示

缓存层级

浏览器缓存(CloudFront)

CloudFront 提供具有适当TTL的浏览器缓存:

  • 图片:长TTL(24-72小时)

  • CSS/JS:版本化并带缓存破坏机制

  • API响应:短TTL或无缓存

CDN缓存(CloudFront)

CloudFront在边缘节点缓存内容:

  • 静态资源:产品图片、CSS、JS文件

  • 产品页面:24小时TTL

  • 查询页面:24小时TTL

  • API响应:无缓存

应用缓存(Valkey)

Valkey 提供内存缓存:

  • 会话管理:带滑动过期的用户会话

  • 热门查询:最常搜索的术语

  • 自动补全:搜索建议

  • 产品数量:库存可用性

  • 短语映射:筛选器提取数据

数据库缓存

Valkey置于数据库前端:

  • 产品数据:为性能而缓存

  • 零件成本:为价格计算而缓存

  • SKU列表:为产品列表而缓存

  • 图片清单:为图片加载而缓存

AI缓存(DeepSeek)

DeepSeek提供提示词缓存:

  • 系统提示:为效率而缓存

  • 缓存命中:减少令牌使用量

  • 缓存未命中:生成新内容

翻译缓存

翻译缓存系统 使用多层架构:

  • Valkey:短语表缓存在内存中

  • 文件:短语表持久化存储在JSON文件中

  • 回退机制:基于哈希的遗留缓存保持向后兼容性

缓存失效

我们在以下情况使缓存失效:

  • 产品更新:使产品缓存失效

  • 库存变更:使库存计数缓存失效

  • 内容更新:使页面缓存失效

  • 翻译更新:使翻译缓存失效

缓存组织

Valkey缓存按功能组织:

  • 会话:用户认证状态

  • 自动补全:搜索建议数据

  • 热门查询:频繁搜索的术语

  • 短语映射:筛选器提取数据

  • 零件成本:价格计算数据

总结

我们的缓存策略提供:

  • 多层架构:浏览器、CDN、应用、数据库

  • 高效性能:Valkey实现快速内存访问

  • 智能优化:AI提示词缓存节省成本

  • 可靠保障:多重回退机制