upstash-redis
Permite usar o Redis em ambientes serverless sem gerenciar conexões. É útil para cache, sessões e estruturas de dados.
O que ela faz
Permite que aplicações salvem e recuperem dados rapidamente usando o Upstash Redis, mesmo em ambientes que não suportam conexões diretas. É como um "cofre" rápido para informações importantes.
Quando usar
- ✓Quando você precisa guardar informações temporárias (cache).
- ✓Para gerenciar sessões de usuários em sites.
- ✓Para contar eventos, como visitas ou cliques.
Exemplo do que pedir para a IA
“Salve o nome do usuário 'Maria' com o ID 'user:123' e faça com que ele expire em 1 hora.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A aplicação envia os dados para o Upstash Redis através de requisições pela internet. O Upstash Redis guarda esses dados e os devolve quando a aplicação pede.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill upstash-redisOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/upstash-redis/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Upstash Redis
Visão Geral
@upstash/redis é um cliente Redis que se comunica com um banco de dados Upstash Redis via
HTTPS em vez de uma conexão TCP. Como cada comando é uma requisição HTTP sem estado,
ele funciona em ambientes onde um cliente TCP com pool é complicado ou
impossível: funções Vercel e Netlify, Cloudflare Workers, Deno, Bun e middleware
Next.js. O cliente serializa e desserializa valores JavaScript automaticamente,
portanto números e objetos são convertidos sem necessidade de JSON.parse manual.
Quando Usar Esta Habilidade
- Use quando o usuário precisar de um cache, armazenamento de sessão, contador, ranking ou fila simples de uma função serverless ou edge.
- Use quando o usuário mencionar Upstash Redis,
UPSTASH_REDIS_REST_URLou@upstash/redis. - Use ao migrar um site de chamada
ioredisounode-redispara um runtime que não pode manter um socket TCP persistente. - Não use para um servidor Redis auto-hospedado ou não-Upstash; o cliente só fala o
protocolo REST do Upstash. Use
ioredisounode-redispara isso. - Não use para administração ou trabalho de CLI do Redis; veja
redis-cli.
Como Funciona
Passo 1: Configurar credenciais
Crie um banco de dados no console Upstash e copie a URL REST e o token para variáveis de ambiente. Nunca as codifique diretamente.
UPSTASH_REDIS_REST_URL=https://<your-db>.upstash.io
UPSTASH_REDIS_REST_TOKEN=<your-rest-token>
Passo 2: Criar um cliente por módulo
import { Redis } from "@upstash/redis";
export const redis = Redis.fromEnv();
No Cloudflare Workers, importe de @upstash/redis/cloudflare e passe o
objeto env do worker: Redis.fromEnv(env).
Passo 3: Chamar comandos Redis como métodos
Os nomes dos comandos são métodos em minúsculas (get, set, hset, zadd, incr).
Os valores são auto-serializados; passe e receba tipos nativos do JavaScript.
Exemplos
Exemplo 1: Cache-aside com TTL
import { Redis } from "@upstash/redis";
const redis = Redis.fromEnv();
export async function getUser(id: string) {
const cached = await redis.get<{ id: string; name: string }>(`user:${id}`);
if (cached) return cached;
const user = await db.users.findById(id);
await redis.set(`user:${id}`, user, { ex: 3600 }); // expires in 1 hour
return user;
}
export async function invalidateUser(id: string) {
await redis.del(`user:${id}`);
}
Exemplo 2: Agrupar comandos em um pipeline
const pipeline = redis.pipeline();
pipeline.hset("user:1", { name: "Alice", plan: "pro" });
pipeline.incr("signups:total");
pipeline.zadd("leaderboard", { score: 120, member: "user:1" });
const [hsetResult, signups, zaddResult] = await pipeline.exec();
pipeline() agrupa comandos independentes em uma única ida e volta. Não é
atômico; use redis.multi() para MULTI/EXEC ou um script Lua revisado no lado do servidor
quando os comandos precisam ser executados como uma unidade.
Melhores Práticas
- ✅ Leia credenciais com
Redis.fromEnv()ou de um gerenciador de segredos. - ✅ Defina um TTL (
{ ex: seconds }) nas entradas do cache para que dados desatualizados expirem. - ✅ Use namespace nas chaves (
user:123,session:abc) para manter o keyspace legível. - ✅ Use
pipeline()oumget/msetem vez de muitos awaits sequenciais. - ❌ Não
JSON.stringifyvalores antes deset; o cliente já faz isso. - ❌ Não chame
keys("*")em manipuladores de requisição; usescanpara keyspaces grandes. - ❌ Não armazene segredos ou PII no Redis sem um plano de retenção e TTL.
Limitações
- Requer um banco de dados Upstash Redis; não pode se conectar a outros servidores Redis.
- Cada comando é uma requisição HTTP, então a latência é maior do que uma conexão TCP quente; use pipelines em lote onde for importante.
- Transações (
multi()) não revertem em erros de runtime, eWATCHnão está disponível via REST; use um script Lua para check-and-set atômico. - Comandos Pub/Sub de subscribe e bloqueantes (
BLPOP,XREAD BLOCK) não são suportados pelo cliente REST. - Esta habilidade cobre apenas o cliente TypeScript. Python, Go e outros SDKs têm nomes de métodos diferentes.
- Esta habilidade não substitui validação específica do ambiente, testes ou revisão especializada.
Notas de Segurança e Proteção
- O token REST concede acesso total de leitura/escrita ao banco de dados. Mantenha-o em variáveis de ambiente do lado do servidor; nunca o envie para um bundle do navegador.
- Use um token somente leitura do console para cargas de trabalho somente leitura.
- Comandos como
flushdbedelsão destrutivos; confirme com o usuário antes de executá-los em um banco de dados de produção.
Armadilhas Comuns
…
Perguntas frequentes
Por que usar o Upstash Redis em vez de um banco de dados normal?
Ele é otimizado para ser muito rápido e funciona bem em ambientes modernos de programação (serverless/edge) que não lidam bem com conexões de longa duração.
O que são 'chaves' e 'valores'?
Pense em 'chaves' como os nomes dos arquivos e 'valores' como o conteúdo desses arquivos. Você usa a chave para encontrar e recuperar o valor.
Posso guardar qualquer tipo de informação?
Sim, você pode guardar textos, números e até estruturas de dados mais complexas como objetos. O sistema cuida da conversão automaticamente.
Detalhes
Descrição original do autor
Use the @upstash/redis HTTP client for caching, sessions, counters, and Redis data structures from serverless and edge runtimes without connection pooling.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #4458
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
clickhouse-io
Ajuda seu agente a otimizar consultas e esquemas no banco de dados ClickHouse. Ele aplica as melhores práticas para cargas de trabalho analíticas de alta performance. Use quando consultas analíticas demoram muito.
affaan-m/ECC
scientific-db-pubmed-database
Ajuda seu agente a buscar artigos científicos na área biomédica. É útil para pesquisas que precisam de informações médicas específicas.
affaan-m/ECC
scientific-db-uspto-database
Permite ao agente consultar dados oficiais de patentes e marcas registradas dos EUA. É útil para pesquisas de propriedade intelectual.
affaan-m/ECC