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