Workers KV
Что это такое
Представьте огромный словарь: вы ищете слово (ключ) и мгновенно получаете его определение (значение). Workers KV — это глобальное KV-хранилище (ключ-значение), построенное именно так и спроектированное под чтение. Вы записываете значение один раз, и Cloudflare реплицирует его по своей сети так, что любой Worker, где угодно, может прочитать его с очень низкой задержкой (почти без ожидания). Оно eventually consistent (с конечной согласованностью): запись становится видна везде в течение короткого окна. Эта небольшая задержка — компромисс за скорость и глобальность.
Сильные стороны
- Чрезвычайно быстрое чтение с низкой задержкой откуда угодно на .
- Автоматически реплицируется глобально — никакими регионами управлять не нужно.
- Простой (программный интерфейс приложения — небольшой набор команд, которые вы вызываете):
get,put,delete,list, с опциональными TTL (Time To Live — сколько значение хранится до автоматического истечения срока). - Дёшево на масштабе для нагрузок с преобладанием чтения; пригодный к использованию бесплатный тариф.
- Привязывается прямо к Workers и Pages Functions.
Компромиссы
- Конечная согласованность — не для данных, которые должны быть верны в тот же миг после записи.
- Запись медленнее и ограничена по частоте по сравнению с чтением.
- Размер значения ограничен (около 25 МБ); это не объёмное хранилище, как R2.
- Никаких запросов или связей — строго ключ к значению.
Когда это использовать
Используйте KV для конфигурации, фича-флагов, кэшированных ответов API, таблиц маршрутизации, поиска сессий и любых преимущественно читаемых данных, которые вы готовы терпеть устаревшими на несколько секунд.
Соответствие vibe coding
KV — лёгкая победа для агента, добавляющего кэширование или конфигурацию в Worker: одна привязка, затем get/put. Чётко укажите, что согласованность конечная, чтобы агент не тянулся к KV там, где нужны гарантии чтения после записи, — направьте его на D1 или Durable Object для этого. Сниппет привязывает namespace и инициализирует значение.
# wrangler.toml
[[kv_namespaces]]
binding = "CONFIG"
id = "your-kv-namespace-id"
npx wrangler kv namespace create CONFIG
npx wrangler kv key put --binding=CONFIG "theme" "dark"