Next.js 15 vs 16: o novo sistema de cache ficou muito melhor
Entenda a diferença entre cacheTag no Next.js 15 e cacheLife no Next.js 16.Post 4 — Cache no Next.js 15 vs 16
O cache do Next.js mudou bastante
Se você usou Next.js 15 provavelmente viu isso:
revalidateTag('posts');Ou:
cacheTag('posts');Mas no Next.js 16 a ideia evoluiu.
E sinceramente?
Ficou muito mais elegante.
Next.js 15
Antes:
import { unstable_cacheTag as cacheTag } from 'next/cache';
export async function getPosts() {
'use cache';
cacheTag('posts');
return db.post.findMany();
}Funcionava bem.
Mas ainda parecia meio experimental.
Agora no Next.js 16
Temos:
import { cacheLife, cacheTag } from 'next/cache';
export async function getPosts() {
'use cache';
cacheTag('posts');
cacheLife('hours');
return db.post.findMany();
}Muito mais legível. Muito mais declarativo.
O que o cacheLife faz?
Ele define quanto tempo o cache vive.
Exemplo:
cacheLife('minutes');Ou:
cacheLife('hours');A API ficou mais natural de entender.
Imagem 1

Imagem 2

O mais interessante
O Next.js está caminhando para um sistema onde cache faz parte da própria arquitetura da aplicação.
Não parece mais um detalhe técnico escondido.
Agora ficou:
- mais previsível
- mais declarativo
- mais fácil de manter
E o "use cache"?
Essa parte continua extremamente importante.
'use cache';Ela marca a função como cacheável.
Depois disso você adiciona:
cacheTag()cacheLife()
E controla tudo de forma muito mais limpa.
Final
O sistema de cache do Next.js está ficando MUITO poderoso.
E provavelmente muita gente ainda não percebeu isso.
Se você trabalha com:
- dashboards
- blogs
- ecommerce
- APIs pesadas
- CMS
Vale muito a pena estudar essas mudanças.