> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Эта табличная функция позволяет интегрировать ClickHouse с Redis.

# redis

Эта табличная функция позволяет интегрировать ClickHouse с [Redis](https://redis.io/).

<div id="syntax">
  ## Синтаксис
</div>

```sql theme={null}
redis(host:port, key, structure[, db_index[, password[, pool_size]]])
```

<div id="arguments">
  ## Аргументы
</div>

| Аргумент | Описание |
| - | - |
| `host:port` | Адрес Redis server; порт можно не указывать, тогда будет использован стандартный порт Redis `6379`. |
| `key` | Любое имя столбца в списке столбцов. |
| `structure` | Схема таблицы ClickHouse, которую возвращает эта функция. |
| `db_index` | Индекс БД Redis в диапазоне от `0` до `15`; значение по умолчанию — `0`. |
| `password` | Пароль пользователя; по умолчанию — пустая строка. |
| `pool_size` | Максимальный размер пула соединений Redis; значение по умолчанию — `16`. |
| `primary` | Обязательный параметр; поддерживается только один столбец в primary key. Primary key будет сериализован в бинарный файл как ключ Redis. |

* столбцы, кроме primary key, будут сериализованы в бинарный файл как значение Redis в соответствующем порядке.
* запросы с фильтрацией по ключу с помощью `equals` или `in` будут оптимизированы до поиска по нескольким ключам в Redis. Если запрос выполняется без фильтрации по ключу, произойдет полное сканирование таблицы, что является ресурсоемкой операцией.

[Именованные коллекции](/ru/concepts/features/configuration/server-config/named-collections) в настоящее время не поддерживаются для табличной функции `redis`.

<div id="returned-value">
  ## Возвращаемое значение
</div>

Объект таблицы, в котором ключ используется как ключ Redis, а остальные столбцы объединены в значение Redis.

<div id="usage-example">
  ## Пример использования
</div>

Чтение из Redis:

```sql theme={null}
SELECT * FROM redis(
    'redis1:6379',
    'key',
    'key String, v1 String, v2 UInt32'
)
```

Вставка в Redis:

```sql theme={null}
INSERT INTO TABLE FUNCTION redis(
    'redis1:6379',
    'key',
    'key String, v1 String, v2 UInt32') values ('1', '1', 1);
```

<div id="related">
  ## См. также
</div>

* [Движок таблицы `Redis`](/ru/reference/engines/table-engines/integrations/redis)
* [Использование Redis в качестве источника словаря](/ru/reference/statements/create/dictionary/sources/redis)
