使用 Prisma Accelerate 进行缓存可以显著提升读取密集型应用的性能,同时减轻数据库的负担。按需缓存失效让您可以精确控制刷新时机,简化管理和优化,同时确保始终提供最新信息。
快速回顾缓存
缓存将频繁访问的数据存储在临时层,以实现更快访问,最大限度地减少从原始源重复获取的需要。Prisma Accelerate 将数据缓存在最靠近您服务器的位置,以提供更快的数据检索。
浏览我们的速度测试,亲身体验缓存如何极大地改善您应用的性能。
缓存的优势
- 通过减少延迟提高性能
- 降低服务器负载和资源使用
- 通过更快的响应时间提升用户体验
- 减少网络带宽消耗
- 通过处理更多流量提高可扩展性
然而,保持缓存数据准确是关键。按需缓存失效(清除过期数据)确保用户接收到实时信息。这是一个棘手的平衡——不当的失效可能导致提供过时数据或不必要地清除缓存,影响性能和可靠性。
缓存失效的重要性
按需缓存失效对于在受益于缓存速度的同时维护数据完整性至关重要。在早期版本的 Prisma Accelerate 中,根据缓存策略,您必须等待 TTL 或 SWR 定时器到期,这限制了对数据刷新时机的控制。现在,通过按需缓存失效,您可以精确地在需要时刷新缓存,从而实现更动态和响应更快的体验。
用例:Hackernews 论坛
想象一下 Hackernews 的场景,新帖子和点赞不断增加。缓存可以极大地加快热门故事的获取速度,减轻服务器负载。然而,如果没有适当的按需失效,用户可能会看到过时的排名、评论,甚至是被完全移除的帖子。这种延迟可能会给用户提供过时的数据,降低体验并减少参与度。
例如,一个获得大量点赞的帖子,如果没有按需失效,将无法实时反映,导致热门帖子列表不准确。通过采用这种技术,点赞、评论或编辑等更新会持续反映,保持内容源的新鲜度并吸引用户。
如何在您的项目中添加 Prisma Accelerate 按需缓存失效功能
继续 Hackernews 的例子,您正在检索最新帖子的缓存列表。使用如下查询,它获取最新的帖子并以较高的 Time-to-Live (TTL) 值缓存结果,从而显著降低数据库的负载。
现在,借助 Prisma Accelerate,您可以通过使用标签来失效缓存,标签将缓存的查询结果分组以便于管理。让我们看一个例子。
-
首先,为您的查询的
cacheStrategy
添加一个标签。 -
然后,在添加新帖子时,使用
$accelerate.invalidate
通过按需失效立即刷新缓存。 -
同样,当您为帖子点赞时,也可以失效缓存。
这就是实现按需缓存重新验证的简单方法。查看示例应用,了解其工作原理。
开始缓存您的查询
利用按需缓存失效来增强查询性能,提高应用的整体响应速度,并减轻数据库的负载。
开始使用 Accelerate
阅读关于使用 Accelerate 进行缓存的文档
请继续关注 X 上的更多精彩更新,并关注我们的更新日志。如果您需要任何帮助,请随时在我们的 Discord 上联系我们。
不要错过下一篇文章!
订阅 Prisma 时事通讯