redis2_raw_queries
Директива `redis2_raw_queries` позволяет задать несколько необработанных команд Redis, которые будут отправлены на сервер Redis.
Описание
Директива redis2_raw_queries в NGINX используется внутри блока location для передачи необработанных команд протокола Redis непосредственно указанному серверу Redis. Это особенно полезно при отправке сложных или нестандартных команд, которые могут не поддерживаться более высокоуровневыми абстракциями, предоставляемыми другими директивами, такими как redis2_query. Директива принимает два аргумента: первый — количество команд для обработки, а второй — переменную или литерал, содержащие фактические команды Redis, отформатированные в стиле протокола Redis (с корректными окончаниями строк и кодировкой). Такой формат необработанных команд позволяет точно контролировать взаимодействие с сервером Redis, обеспечивая совместимость с существующими клиентами Redis, которым могут требоваться специфические структуры команд.
Типичный случай использования redis2_raw_queries — когда выполняется несколько команд или команды, требующие специфического форматирования, например, конвейерных команд. Это может помочь оптимизировать производительность, объединяя команды в один запрос, где это целесообразно. Директива хорошо подходит для таких задач, как реализация пользовательских стратегий кеширования или настроек Redis Pub/Sub в веб-приложениях, где стандартных структур запросов недостаточно. Поведение директивы чувствительно к контексту: она работает внутри блоков location и if, обеспечивая последовательное выполнение директив в соответствии с предшествующими конфигурациями.
Пример конфига
location = /custom {
redis2_raw_queries 2 'set mykey value
get mykey
';
redis2_pass 127.0.0.1:6379;
}Убедитесь, что сырые команды Redis правильно отформатированы в соответствии с протоколом Redis, особенно в части окончаний строк.
Использование этой директивы без соответствующего redis2_pass может привести к неудачным запросам, поскольку для команд отсутствует место назначения.
Учтите размер команд: чрезмерно большие сырые запросы могут привести к проблемам с производительностью.