cacheTag
Learn how to use the cacheTag function to manage cache invalidation in your Next.js application.
The cacheTag function allows you to tag cached data for on-demand invalidation. By associating tags with cache entries, you can selectively purge or revalidate specific cache entries without affecting other cached data.
Usage
To use cacheTag, enable the cacheComponents flag in your next.config.js file:
The cacheTag function takes one or more string values.
You can then purge the cache on-demand from a Server Function or Route Handler:
- Use
updateTagfor read-your-own-writes scenarios, such as forms and other user-triggered mutations, where a user makes a change and the next read should fetch fresh data immediately.updateTagis only available inside Server Functions. - Use
revalidateTagwhen it is acceptable to serve stale data while revalidation happens in the background, or when revalidating from a Route Handler or other context.
For example, this Server Function adds a post and then purges every cache entry tagged 'my-data' so the next read reflects the change:
Good to know
- Idempotent Tags: Applying the same tag multiple times has no additional effect.
- Multiple Tags: You can assign multiple tags to a single cache entry by passing multiple string values to
cacheTag.
- Limits: A single
cacheTag()call accepts up to 128 tags, each with a maximum length of 256 characters. Tags longer than 256 characters are skipped, and any tags past the 128th in one call are dropped. Both cases log a console warning.
Examples
Tagging components or functions
Tag your cached data by calling cacheTag within a cached function or component:
Creating tags from external data
You can use the data returned from an async function to tag the cache entry.
Invalidating tagged cache
Using revalidateTag, you can invalidate the cache for a specific tag when needed: