Подключение через RESP
Используйте MGET, чтобы читать кэшированные строки PostgreSQL клиентом RESP2.
Сначала запустите временную демонстрацию с конфигурацией RESP:
docker compose -f examples/compose.yaml -f examples/compose.resp.yaml up --build --wait
Это включает RESP на 127.0.0.1:56379. При пересоздании демонстрации её данные
удаляются. Приведённый ниже токен является публичным и предназначен только для
этой локальной демонстрации.
redis-cli
export REDISCLI_AUTH=DemoRespToken_0123456789abcdef0123456789
redis-cli -2 -p 56379 MGET 'CRUD:pglc_demo.public.items:{"id":42}'
Ответ содержит строку 42 в формате JSON. Для отсутствующих строк возвращается
nil. redis-cli читает токен
из REDISCLI_AUTH.
Node.js
npm --prefix examples/node-postgres ci --ignore-scripts
npm --prefix examples/node-postgres run resp
Пример использует официальный пакет @redis/client и проверяет порядок,
дубликаты, позиции входных null и отсутствующие строки. Его помощник исключает
null-ключи из протокола и восстанавливает их позиции после декодирования.
Для подключения из приложения:
import { createClient } from '@redis/client';
const client = createClient({
url: 'redis://127.0.0.1:56379',
password: process.env.PGLC_RESP_TOKEN,
RESP: 2,
disableClientInfo: true,
});
client.on('error', console.error);
await client.connect();
try {
const values = await client.mGet(['CRUD:pglc_demo.public.items:{"id":42}']);
const rows = values.map(value => value === null ? null : JSON.parse(value));
console.log(rows);
} finally {
await client.close();
}
Задайте PGLC_RESP_TOKEN токеном вашего сервера. Не закрывайте это соединение
между запросами. Эти настройки клиента
выбирают RESP2 и пропускают специфичные для Redis команды метаданных клиента.
Используйте только токеновую аутентификацию, без имени пользователя и номера
базы данных Redis.
Воркеры RESP используют одну настроенную роль PostgreSQL для всех клиентов. Для чтения внутри SQL-транзакции используйте SQL Node.js или SQL Go. Сведения о командах и ограничениях см. в справочнике RESP.
Сравнение с SQL
Общий бенчмарк запускает
RESP MGET, SQL mget и подготовленный SQL с одинаковыми ключами и
декодированными результатами в Node.js и Go.
Для более широкого кэширования приложения прочитайте руководство по cache-aside для PostgreSQL и Redis.
Остановите демонстрацию
docker compose -f examples/compose.yaml -f examples/compose.resp.yaml down
Обновлено .