К основному содержанию
скилл CX Codex

upstash-redis-js — скилл для Claude Code: Redis SDK

Скилл помогает работать с @upstash/redis в TypeScript и JavaScript: от кэша и сессий до очередей и поиска. Пригодится при добавлении Redis в приложение или миграции с ioredis.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add upstash/skills --skill upstash-redis-js -a claude-code
Открыть на GitHub

Что делает upstash-redis-js

Внутри — руководства по типам данных Redis, кэшированию, сессиям, распределённым блокировкам, конвейерам и транзакциям. Есть примеры для списков, потоков, JSON-документов, векторного поиска и полнотекстового поиска через Upstash Redis Search. Скилл также объясняет автоматическую сериализацию JavaScript-типов.

Для работы с SDK проекту нужен пакет @upstash/redis; установка — npm install @upstash/redis. Подключение можно настроить через UPSTASH_REDIS_REST_URL и UPSTASH_REDIS_REST_TOKEN либо создать клиент с Redis.fromEnv(). Без URL базы и токена приложение не подключится к Redis, поэтому подготовьте их заранее.

Какие задачи решает

  • добавить кэш с истечением срока хранения
  • хранить пользовательские сессии в Redis
  • собрать очередь задач на списках или потоках
  • перенести код с ioredis или node-redis
  • настроить поиск по документам Redis

Примеры запросов агенту

  • Добавь кэш с TTL через @upstash/redis и покажи настройку подключения.
  • Перенеси этот код с ioredis на @upstash/redis, учитывая различия сериализации.
  • Настрой хранение пользовательских сессий в Redis с помощью SDK Upstash.

Как установить upstash-redis-js

1Через Skills CLI (Vercel)

npx skills add upstash/skills --skill upstash-redis-js -a claude-code

2Вручную: положить файлы

~/.claude/skills/upstash-redis-js/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/upstash-redis-js/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о upstash-redis-js

Как установить upstash-redis-js в Claude Code?

Выполните npx skills add upstash/skills --skill upstash-redis-js -a claude-code. Файл скилла находится по пути ~/.claude/skills/upstash-redis-js/SKILL.md.

Что делает upstash-redis-js?

Помогает писать код на TypeScript и JavaScript с SDK @upstash/redis: настраивать кэш, сессии, очереди, транзакции и поиск.

Что нужно для подключения к Redis?

Установите @upstash/redis и задайте UPSTASH_REDIS_REST_URL вместе с UPSTASH_REDIS_REST_TOKEN. Для создания клиента из переменных окружения используйте Redis.fromEnv().

Исходный текст

SKILL.md · MIT
---
name: upstash-redis-js
description: Work with the @upstash/redis TypeScript/JavaScript SDK, a serverless HTTP-based Redis client for Next.js, Vercel, Cloudflare Workers, edge runtimes, and Node.js. Use when adding a cache (cache-aside, write-through, TTL and expiration strategies), session storage and user sessions, a key-value store, leaderboards and rankings with sorted sets, counters, distributed locks, queues with lists, streams and consumer groups, sparse index-addressed arrays and ring buffers (ARSET, ARINSERT, ARRING, ARGREP, AROP), embeddings and nearest-neighbour vector search stored inside Redis (VECTOR commands via redis.vector, separate from @upstash/vector), JSON documents, pipelines and MULTI/EXEC transactions, Lua scripting, read replicas, or full-text search, typo-tolerant search, facets, aggregations, and search over Redis stream entries with Upstash Redis Search (different from regular FT.SEARCH; also available for TCP clients via @upstash/search-redis and @upstash/search-ioredis). Also use when migrating from ioredis or node-redis, when a Redis connection is needed from a serverless function without connection pooling, when integrating @upstash/ratelimit, or when the user says Redis cache, KV store, session store, serverless Redis, or Upstash Redis. Also use when building AI agents on Redis with Upstash AgentKit (agent memory, chat history, RAG tools, tool caching, chat persistence, resumable streams, distributed locks) for the Vercel AI SDK, TanStack AI, or Vercel Eve. Supports automatic serialization/deserialization of JavaScript types.
license: MIT
metadata:
  author: Upstash
  homepage: https://upstash.com
---

# Upstash Redis SDK - Complete Skills Guide

This directory contains comprehensive guides for using the `@upstash/redis` SDK. These skill files are designed to help developers and AI assistants understand and use the SDK effectively.

## Installation

```bash
npm install @upstash/redis
```

## Quick Start

### Basic Initialization

```typescript
import { Redis } from "@upstash/redis";

// Initialize with explicit credentials
const redis = new Redis({
  url: "UPSTASH_REDIS_REST_URL",
  token: "UPSTASH_REDIS_REST_TOKEN",
});

// Or initialize from environment variables
const redis = Redis.fromEnv();
```

### Environment Variables

Set these in your `.env` file:

```bash
UPSTASH_REDIS_REST_URL=https://your-redis.upstash.io
UPSTASH_REDIS_REST_TOKEN=your-token-here
```

> **No credentials yet?** If you're an agent that needs scratch Redis and the user hasn't provided a database, you can mint a temporary one with a single POST to `https://upstash.com/start-redis` (3-day TTL, no signup).

## Skill Files Overview

### Data Structures (data-structures/)

Redis data types with auto-serialization examples:

- **strings.md** - GET, SET, INCR, DECR, APPEND with automatic type handling
- **hashes.md** - HSET, HGET, HMGET with object serialization
- **lists.md** - LPUSH, RPUSH, LRANGE with array handling
- **sets.md** - SADD, SMEMBERS, set operations
- **sorted-sets.md** - ZADD, ZRANGE, ZRANK, leaderboard patterns
- **json.md** - JSON.SET, JSON.GET, JSONPath queries for nested objects
- **streams.md** - XADD, XREAD, XGROUP, consumer groups
- **arrays.md** - ARSET, ARINSERT, ARSCAN, ARGREP, AROP, ring buffers with ARRING on sparse index-addressed arrays
- **vector-indexes.md** - VECTOR.CREATE, VECTOR.ADD, VECTOR.QUERY nearest-neighbour search inside Redis via redis.vector

### Advanced Features (advanced-features/)

Complex operations and optimizations:

- **auto-pipeline.md** - Automatic request batching, performance optimization
- **pipeline-and-transactions.md** - Manual pipelines, MULTI/EXEC for atomic operations
- **scripting.md** - Lua scripts, EVAL, EVALSHA for server-side logic

### Patterns (patterns/)

Common use cases and architectural patterns:

- **caching.md** - Cache-aside, write-through, TTL strategies
- **rate-limiting.md** - Integration with @upstash/ratelimit package
- **session-management.md** - Session storage and user state management
- **distributed-locks.md** - Lock implementations, deadlock prevention
- **leaderboard.md** - Sorted set leaderboards, real-time rankings

### Performance (performance/)

Optimization techniques and best practices:

- **batching-operations.md** - MGET, MSET, batch operations
- **pipeline-optimization.md** - When to use pipelines, performance tips
- **ttl-expiration.md** - Key expiration strategies, memory management
- **data-serialization.md** - Deep dive into auto serialization, custom serializers, edge cases
- **error-handling.md** - Error types, retry strategies, timeout handling, debugging tips
- **redis-replicas.md** - Global database setup, read replicas, read-your-writes consistency

### Search (search/)

Full-text search, filtering, and aggregation extension for Redis:

- **overview.md** - Schema definition, field types, pitfalls, package overview
- **commands/querying.md** - Query and count with filters, pagination, sorting, highlighting
- **commands/aggregating.md** - Metric aggregations ($avg, $sum, $stats), bucket aggregations ($terms, $range, $histogram, $facet)
- **commands/index-management.md** - Create, describe, drop indexes (including stream indexes over XADD entries), waitIndexing
- **commands/aliases.md** - Index aliases for zero-downtime reindexing
- **adapters.md** - Using search with node-redis and ioredis via @upstash/search-redis and @upstash/search-ioredis

### Migrations (migrations/)

Migration guides from other libraries:

- **from-ioredis.md** - Migration from ioredis, key differences, serialization changes
- **from-redis-node.md** - Migration from node-redis, API differences

## Common Mistakes (Especially for LLMs)

### ❌ Mistake 1: Treating Everything as Strings

```typescript
// ❌ WRONG - Don't do this with @upstash/redis
await redis.set("count", "42"); // Stored as string "42"
const count = await redis.get("count");
const incremented = parseInt(count) + 1; // Manual parsing needed

// ✅ CORRECT - Let the SDK handle it
await redis.set("count", 42); // Stored as number
const count = await redis.get("count");
const incremented = count + 1; // Just use it
```

### ❌ Mistake 2: Manual JSON Serialization

```typescript
// ❌ WRONG - Unnecessary with @upstash/redis
await redis.set("user", JSON.stringify({ name: "Alice" }));
const user = JSON.parse(await redis.get("user"));

// ✅ CORRECT - Automatic handling
await redis.set("user", { name: "Alice" });
const user = await redis.get("user");
```

## Quick Command Reference

```typescript
// Strings
await redis.set("key", "value");
await redis.get("key");
await redis.incr("counter");
await redis.decr("counter");

// Hashes
await redis.hset("user:1", { name: "Alice", age: 30 });
await redis.hget("user:1", "name");
await redis.hgetall("user:1");

// Lists
await redis.lpush("tasks", "task1", "task2");
await redis.rpush("tasks", "task3");
await redis.lrange("tasks", 0, -1);

// Sets
await redis.sadd("tags", "javascript", "redis");
await redis.smembers("tags");

// Sorted Sets
await redis.zadd("leaderboard", { score: 100, member: "player1" });
await redis.zrange("leaderboard", 0, -1);

// JSON
await redis.json.set("user:1", "$", { name: "Alice", address: { city: "NYC" } });
await redis.json.get("user:1");

// Expiration
await redis.setex("session", 3600, { userId: "123" });
await redis.expire("key", 60);
await redis.ttl("key");
```

## Best Practices

1. **Use environment variables** for credentials, never hardcode
2. **Leverage auto-serialization** - pass native JavaScript types
3. **Use TypeScript types** for better type safety
4. **Set appropriate TTLs** to manage memory
5. **Use pipelines** for multiple operations
6. **Namespace your keys** (e.g., `user:123`, `session:abc`)

## AI agents: use AgentKit

For agent state on Redis — memory, chat history, RAG search tools, tool caching, rate limiting, chat persistence, resumable streams, locks — use [Upstash AgentKit](https://github.com/upstash/agentkit) instead of hand-rolling it on `@upstash/redis`. Pick the adapter for the framework and follow its docs page:

| Framework | Package | Docs |
| --- | --- | --- |
| Vercel AI SDK | `@upstash/agentkit-ai-sdk` | https://upstash.com/docs/redis/sdks/agentkit/ai-sdk |
| TanStack AI | `@upstash/agentkit-tanstack-ai` | https://upstash.com/docs/redis/sdks/agentkit/tanstack-ai |
| Vercel Eve | `@upstash/agentkit-eve`, `@upstash/agentkit-eve-extension` | https://upstash.com/docs/redis/sdks/agentkit/eve |

## Resources

- [Official Documentation](https://upstash.com/docs/redis)
- [GitHub Repository](https://github.com/upstash/redis-js)
- [API Reference](https://upstash.com/docs/redis/sdks/ts/overview)
- [Examples](https://github.com/upstash/redis-js/tree/main/examples)

## Getting Help

For detailed information on specific topics, refer to the individual skill files in the `skills/` directory. Each file contains comprehensive examples, use cases, and best practices for its topic.

© Upstash · MIT · upstash/skills

Похожие скиллы

Все скиллы по теме «Данные и базы» →
xlsx официальный anthropics Работает с табличными файлами: создаёт, читает, правит и преобразует книги. Подходит, когда итогом должен стать файл Excel или другой табличный формат. 187 223установок google-agents-cli-observability официальный Google Помогает настроить трассировку и сбор данных о работе ИИ-агентов, включая агентов на ADK. Пригодится, когда нужно разбирать выполнение запросов или наблюдать за агентом после развёртывания. CX Codex +1 511 300установок caveman-evidence-review JuliusBrussee Скилл читает данные Caveman Cloud о расходах LLM, трассах и маршрутизации. Подходит для проверки того, куда уходит бюджет проекта. CX Codex +1 104 500установок migration JuliusBrussee Скилл задаёт правила безопасных миграций схем, данных и API с обязательным откатом. Пригодится при изменениях, где нельзя терять данные или ломать совместимость. CX Codex +1 103 900установок performance-optimization addyosmani Скилл для агентов ИИ-кодинга: сначала замеряет, потом чинит узкое место — от Core Web Vitals до N+1 запросов и индексов в базе. CX Codex +1 65 200установок supabase официальный supabase Скилл помогает настраивать базу данных, аутентификацию и RLS в Supabase без скрытых дыр в безопасности. CX Codex GP ChatGPT 8установок

Из того же набора11

upstash-ratelimit-js Скилл подключает ИИ-агента к SDK @upstash/ratelimit: помогает поставить лимит запросов в API-роуте, middleware Next.js или на edge-рантайме. CX Codex +1 22 300установок upstash Скилл с документацией по всем SDK Upstash: Redis, Ratelimit, QStash, Workflow, Vector, Search, Box и Blob. Пригодится, когда агент пишет код для serverless и edge. CX Codex +1 3 800установок upstash-qstash-js Скилл для работы с SDK @upstash/qstash: публикация сообщений, очереди, cron, отложенная доставка и проверка подписей вебхуков. Пригодится, если у вас нет постоянного воркера. CX Codex +1 2 200установок upstash-workflow-js Учит агента писать долгие воркфлоу на @upstash/workflow, которые переживают таймауты, ретраи и перезапуски serverless-функций. CX Codex +1 2 100установок upstash-vector-js Скилл учит агента работать с TypeScript/JavaScript SDK Upstash Vector: загрузка векторов, поиск похожих, RAG и семантический кэш. CX Codex +1 1 300установок upstash-box-js Скилл учит агента работать с SDK @upstash/box: создавать облачные контейнеры, запускать в них агентов, шелл и git. CX Codex +1 1 200установок upstash-search-js Скилл ведёт агента по TypeScript SDK @upstash/search: индексы, документы, keyword, semantic и hybrid-запросы. Пригодится, когда в проект нужно добавить поиск. CX Codex +1 1 200установок upstash-box-cli Скилл учит агента работать с Upstash Box: запускать команды, собирать проекты и отдавать публичную ссылку на результат. CX Codex +1 563установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой