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

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

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

Синтаксис

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

Аргументы

ArgumentDescription
host:portАдрес сервера Redis; можно опустить порт, тогда будет использован порт Redis 6379 по умолчанию.
keyЛюбое имя столбца из списка столбцов.
structureСхема таблицы ClickHouse, возвращаемой этой функцией.
db_indexИндекс базы данных Redis в диапазоне от 0 до 15, по умолчанию 0.
passwordПароль пользователя, по умолчанию пустая строка.
pool_sizeМаксимальный размер пула подключений Redis, по умолчанию 16.
primaryДолжен быть указан; поддерживается только один столбец в первичном ключе. Первичный ключ будет сериализован в двоичном виде как ключ Redis.
  • Столбцы, отличные от первичного ключа, будут сериализованы в двоичном виде как значение Redis в соответствующем порядке.
  • Запросы с фильтрацией по выражениям key equals или key in будут оптимизированы до поиска по нескольким ключам в 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);