redis2_query

Задает запрос команды Redis, который будет выполнен upstream-сервером Redis.

Синтаксисredis2_query command [args];
По умолчаниюnone
Контекстlocation, if in location
Аргументы1+

Описание

Директива redis2_query позволяет определить одну или несколько команд Redis, которые будут отправлены на upstream-сервер Redis для выполнения. Эта директива может использоваться внутри блоков location, позволяя задавать специальные обработчики для разных конечных точек. Основное преимущество использования redis2_query — возможность формировать команды Redis динамически на основе переменных, определённых в конфигурации. Можно объявить несколько экземпляров redis2_query, что позволяет организовать пакетные (pipelined) команды и повысить производительность за счёт уменьшения числа round trips к серверу Redis.

Каждый redis2_query вычисляется во время выполнения, то есть вы можете передавать переменные, установленные ранее в цикле обработки запроса. Это означает, что вы можете использовать её совместно с другими директивами, такими как set, для динамических значений или для получения параметров из строки запроса. При объединении нескольких запросов в одном блоке location вы можете выполнить несколько команд Redis, а затем с помощью директивы redis2_pass переслать запросы на указанный сервер Redis. Это обеспечивает гибкость и контроль над командами Redis, которые вы выполняете в ответ на клиентские запросы.

Пример конфига

location = /store {
    set $item 'key';
    set $value 'value';
    redis2_query set $item $value;
    redis2_query get $item;
    redis2_pass 127.0.0.1:6379;
}

Убедитесь, что переменные, используемые в запросе, правильно определены до того, как будет выполнена директива redis2_query.

Использование более чем одного redis2_query в одном блоке location может привести к непредвиденному поведению или снижению производительности, особенно если они не конвейеризованы корректно.

Неправильное форматирование Redis-команды или её аргументов может привести к ошибкам или к отправке некорректных команд на Redis-сервер.

← Ко всем директивам