# redis-clustering

Подсказывает, как разложить ключи по слотам Redis Cluster и снять нагрузку чтения с праймари. Пригодится, когда ловишь CROSSSLOT на MGET или проектируешь ключи заранее.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 1800 установок · ★ 170
- Автор: Redis, Inc.
- Лицензия: MIT · policy=mirror · лицензия открытая, файл — в исходнике
- Исходник: https://github.com/redis/agent-skills/tree/HEAD/skills/redis-clustering/SKILL.md
- Обновлён: 2026-09-08
- HTML: https://affpapa.org/nevibecode/skills/redis-clustering

## Что делает

Скилл разбирает две проблемы, на которых спотыкаются почти все, кто впервые включает кластерный режим. Первая — ошибка `CROSSSLOT`: любая команда с несколькими ключами (`MGET`, `SDIFF`, транзакции, пайплайны, Lua-скрипты) требует, чтобы все ключи лежали в одном слоте. Хеш-тег решает это: в расчёт слота идёт только часть между `{` и `}`.

Тег советует брать по смыслу сущности — `{user:1001}`, а не голый `{1001}`, иначе разные пространства имён вроде `purchase:{1001}` и `employee:{1001}` свалятся в один слот. Помечать тегами стоит только те ключи, где правда нужны операции над несколькими ключами: если проставить их везде, появятся хотспоты и шардирование потеряет смысл. Переименовать ключи в продакшене больно, поэтому планировать теги лучше до запуска.

Вторая часть — чтение с реплик. В `RedisCluster` включается флагом `read_from_replicas=True`, запись уходит на праймари, а `get` может обслужить реплика. Для обычной репликации без кластера скилл предлагает два клиента на разные хосты. Цена — согласованность: реплики в конечном счёте консистентны, поэтому читать с них собственные записи и всё, где нужна строгая свежесть (балансы, состояние идемпотентности), не стоит. Кэши, аналитика, дашборды и ленты рекомендаций — нормальные кандидаты.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add redis/agent-skills --skill redis-clustering -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/redis-clustering/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/redis-clustering/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add redis/agent-skills --skill redis-clustering -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/redis-clustering/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add redis/agent-skills --skill redis-clustering -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/redis-clustering/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install redis/agent-skills redis-clustering
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/redis-clustering/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add redis/agent-skills --skill redis-clustering -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/redis/agent-skills --path skills/redis-clustering
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/redis-clustering/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add redis/agent-skills --skill redis-clustering -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/redis/agent-skills/tree/HEAD/skills/redis-clustering/SKILL.md

## Когда брать
- разложить ключи по слотам так, чтобы операции над несколькими ключами не падали
- починить CROSSSLOT на `MGET`, `SDIFF` или в пайплайне
- собрать транзакцию или Lua-скрипт с несколькими ключами в кластере
- разгрузить праймари, отдав чтение репликам
- выбрать, где вообще уместны хеш-теги, а где они создадут хотспоты

## Примеры запросов агенту
- У меня падает CROSSSLOT на MGET по ключам user:1001:profile и user:1001:settings — помоги переделать ключи
- Спроектируй ключи для Redis Cluster под корзину и заказы пользователя, чтобы транзакции работали
- Настрой чтение с реплик в RedisCluster для дашборда, запись оставь на праймари

## Похожие
- [redis](https://affpapa.org/nevibecode/skills/redis.md) — скилл · 379 установок
- [redis-best-practices](https://affpapa.org/nevibecode/skills/redis-best-practices.md) — скилл · 2200 установок
- [redis-patterns](https://affpapa.org/nevibecode/skills/patricio0312rev-redis-patterns.md) — скилл · 361 установка
- [redis-js](https://affpapa.org/nevibecode/skills/redis-js.md) — скилл · 1500 установок
- [bun-redis](https://affpapa.org/nevibecode/skills/bun-redis.md) — скилл · 388 установок
- [Redis Caching taste](https://affpapa.org/nevibecode/prompts/redis-caching-taste.md) — промпт · ★ 174597

Из того же набора: [redis/agent-skills](https://affpapa.org/nevibecode/by/redis/agent-skills.md) — 8 карточек

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
