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