用途:帮助规划从客户端到 CDN 边缘、服务端缓存再到数据库的多层缓存体系,并给出 CDN 配置、服务端缓存、缓存失效与缓存响应头的实现思路。
主要能力:
- 分层设计:Client → CDN(Edge)→ Server Cache → Database。
- CDN 配置:以 CloudFront 为例,设置 Origin 自定义头(X-CDN-Secret)、ViewerProtocolPolicy 为 redirect-to-https、允许 GET/HEAD/OPTIONS、缓存 GET/HEAD、开启 Compress,并配置 DefaultTTL、MaxTTL、MinTTL 与 ForwardedValues(QueryString、Cookies、Headers)。
- 按路径设置 CacheBehaviors:如 /api/static/* 使用 1 年 TTL,/api/dynamic/* 使用 5 分钟 TTL。
- 服务端缓存:以 Redis(ioredis)实现 getCachedOrFetch,先读缓存,未命中则取数并 setex 写入,默认 TTL 3600 秒。
- 缓存失效:数据更新后删除 Redis 键,并调用 cloudfront.createInvalidation 使 CDN 路径失效。
- 缓存响应头:对公开数据设置 Cache-Control: public, max-age=3600、ETag、Last-Modified;对敏感数据设置 Cache-Control: private, no-cache。
使用方式:按资料中的配置与代码模式,在应用路由中接入缓存读取、写入与失效逻辑,并配置 CDN 分发与缓存行为。
适用场景:需要为 API 或 Web 服务设计缓存策略、配置 CDN、处理缓存失效与响应头的开发与运维场景。
限制:资料未提供具体安装命令、依赖版本、价格、平台支持范围或性能效果数据;示例基于 CloudFront 与 Redis,其他 CDN 或缓存后端需自行适配。