AgentSkillsCN

server_cache_lru

从vercel导入技能server_cache_lru

SKILL.md
--- frontmatter
description: Imported skill server_cache_lru from vercel
name: server_cache_lru
signature: 1924b64561841923b88a657085097a0aeba3e0ba2d5470b9f5c15cc10d6ae70f
source: /a0/tmp/skills_research/vercel/skills/react-best-practices/rules/server-cache-lru.md

title: Cross-Request LRU Caching impact: HIGH impactDescription: caches across requests tags: server, cache, lru, cross-request

Cross-Request LRU Caching

React.cache() only works within one request. For data shared across sequential requests (user clicks button A then button B), use an LRU cache.

Implementation:

typescript
import { LRUCache } from 'lru-cache'

const cache = new LRUCache<string, any>({
  max: 1000,
  ttl: 5 * 60 * 1000  // 5 minutes
})

export async function getUser(id: string) {
  const cached = cache.get(id)
  if (cached) return cached

  const user = await db.user.findUnique({ where: { id } })
  cache.set(id, user)
  return user
}

// Request 1: DB query, result cached
// Request 2: cache hit, no DB query

Use when sequential user actions hit multiple endpoints needing the same data within seconds.

With Vercel's Fluid Compute: LRU caching is especially effective because multiple concurrent requests can share the same function instance and cache. This means the cache persists across requests without needing external storage like Redis.

In traditional serverless: Each invocation runs in isolation, so consider Redis for cross-process caching.

Reference: https://github.com/isaacs/node-lru-cache