> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8a08bda2.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)
