Перейти к основному содержимому
Перейти к основному содержимому

Интеграция с Redis

Пользователи могут интегрироваться с Redis с помощью табличной функции.

redis табличная функция

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

Синтаксис

redis(host:port, key, structure[, db_index[, password[, pool_size]]])

Аргументы

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

Именованные коллекции в настоящее время не поддерживаются для табличной функции redis.

Возвращаемое значение

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

Пример использования

Чтение из Redis:

SELECT * FROM redis(
    'redis1:6379',
    'key',
    'key String, v1 String, v2 UInt32'
)

Вставка в Redis:

INSERT INTO TABLE FUNCTION redis(
    'redis1:6379',
    'key',
    'key String, v1 String, v2 UInt32') values ('1', '1', 1);