| name | runtime-cache |
| description | Vercel Runtime Cache API guidance — ephemeral per-region key-value cache with tag-based invalidation. Shared across Functions, Routing Middleware, and Builds. Use when implementing caching strategies beyond framework-level caching. |
| metadata | {"priority":6,"docs":["https://nextjs.org/docs/app/building-your-application/caching"],"sitemap":"https://nextjs.org/sitemap.xml","pathPatterns":["lib/cache/**","src/lib/cache/**","lib/cache.*","src/lib/cache.*"],"bashPatterns":["\\bnpm\\s+(install|i|add)\\s+[^\\n]*@vercel/functions\\b","\\bpnpm\\s+(install|i|add)\\s+[^\\n]*@vercel/functions\\b","\\bbun\\s+(install|i|add)\\s+[^\\n]*@vercel/functions\\b","\\byarn\\s+add\\s+[^\\n]*@vercel/functions\\b"]} |
| validate | [{"pattern":"from\\s+['\"\"](redis|ioredis)['\"\"]|require\\s*\\(\\s*['\"\"](redis|ioredis)['\"\"]|new\\s+Redis\\(","message":"Direct Redis/ioredis client detected. Use Upstash Redis (@upstash/redis) for serverless-native Redis with HTTP-based connections.","severity":"recommended","upgradeToSkill":"vercel-storage","upgradeWhy":"Replace direct Redis/ioredis with @upstash/redis for serverless-compatible HTTP-based Redis that works without persistent TCP connections.","skipIfFileContains":"from\\s+['\"\"]\\@upstash/redis['\"\"]"}] |
| retrieval | {"aliases":["cache api","kv cache","region cache","tag invalidation"],"intents":["add caching","cache api response","invalidate cache","set up runtime cache"],"entities":["Runtime Cache","tag-based invalidation","key-value","cache"]} |
| chainTo | [{"pattern":"from\\s+['\"\"]@vercel/kv['\"\"]","targetSkill":"vercel-storage","message":"@vercel/kv is sunset — loading Vercel Storage guidance for Upstash Redis migration."},{"pattern":"from\\s+['\"\"]ioredis['\"\"]|new\\s+Redis\\(","targetSkill":"vercel-storage","message":"Direct Redis client detected — loading Vercel Storage guidance for Upstash Redis (serverless-native) integration."}] |
Vercel Runtime Cache API
You are an expert in the Vercel Runtime Cache — an ephemeral caching layer for serverless compute.
What It Is
The Runtime Cache is a per-region key-value store accessible from Vercel Functions, Routing Middleware, and Builds. It supports tag-based invalidation for granular cache control.
- Regional: Each Vercel region has its own isolated cache
- Isolated: Scoped per project AND per deployment environment (
preview vs production)
- Persistent across deployments: Cached data survives new deploys; invalidation via TTL or
expireTag
- Ephemeral: Fixed storage limit per project; LRU eviction when full
- Framework-agnostic: Works with any framework via
@vercel/functions
Key APIs
All APIs from @vercel/functions:
Basic Cache Operations
import { getCache } from '@vercel/functions';
const cache = getCache();
await cache.set('user:123', userData, {
ttl: 3600,
tags: ['users', 'user:123'],
name: 'user-profile',
});
const data = await cache.get('user:123');
await cache.delete();
cache.();
cache.([, ]);