1 min read

Prisma : `cacheStrategy`

mise en cache en Prisma
  • Stratégies de cache en Prisma
    • Time-to-Live (TTL)
    • Stale-while-Revalidate (SWR)
    • Désactivé (défaut)
prisma-ttl
Time-to-Live (TTL)
prisma-swr
Stale-while-Revalidate (SWR)

Combinez les deux > efficacité maximum

await prisma.user.findMany({
  where: {
    email: {
      contains: "alice@prisma.io",
    },
  },
  cacheStrategy: {
    swr: 60,
    ttl: 60,
    tags: ["emails_with_alice"],
  },
});

le tag emails_with_alice identifie uniquement le cache crée par cette stratégie. Nous verrons sa utilisation dans la section prochaine.

invalidate

Pour que les changements aux données sont réfléchi en temps réel, nous ajoutons un invalidate() après chaque ajoute de données pertinent :

const user1 = await prisma.user.create({
    data: {
      email: user1Email,
      name: 'Alice',
      posts: {
        create: {
          title: 'Join the Prisma community on Discord',
          content: 'https://pris.ly/discord',
          published: true,
        },
      },
    },
    include: {
      posts: true,
    },
  });
await prisma.$accelerate.invalidate({
    tags: ["emails_with_alice"],
});