Перейти к содержимому
WebShield Docs

Хранилище Valkey

Хранилище «ключ — значение», совместимое с Redis, для приложений — создание, подключение и примеры кода.

Valkey — управляемое хранилище «ключ — значение», совместимое с клиентами Redis. Приложения используют его для кеша, сессий и очередей; подключаетесь обычным Redis-клиентом по строке из переменной окружения.

Не путайте с хранилищем KV функций: оно живёт внутри функции, а Valkey — отдельный ресурс проекта, доступный приложениям. Для таблиц и SQL — база Postgres.

В кабинете: карточка проекта → блок Valkey → Создать. Из терминала:

Окно терминала
webshield apps kv create cache --memory 128 # 128 МБ, только в памяти
webshield apps kv create cache --memory 128 --persistent # переживает перезапуск
webshield apps kv list # хранилища проекта
webshield apps kv delete cache # удалить

Память — от 64 до 512 МБ. По умолчанию данные только в памяти и пропадают при перезапуске; с --persistent (в кабинете — Хранить на диске) — переживают его.

Ссылка на хранилище — как у баз: ${{cache.url}} в переменной приложения.

Окно терминала
webshield apps env set REDIS_URL='${{cache.url}}' --redeploy

Node.js с клиентом redis:

import { createClient } from "redis";
const redis = createClient({ url: process.env.REDIS_URL });
await redis.connect();
await redis.set("greeting", "привет");
console.log(await redis.get("greeting")); // привет
await redis.incr("hits");

Python с redis:

import os
import redis
r = redis.from_url(os.environ["REDIS_URL"])
r.set("greeting", "привет")
print(r.get("greeting").decode()) # привет

Когда память заполнена, запись отвергается (OOM command not allowed), ключи сами не удаляются. Нужен кеш с вытеснением старого — задайте ключам время жизни (EXPIRE).