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

Redis

Not supported in ClickHouse Cloud

Этот движок позволяет интегрировать ClickHouse с Redis. Поскольку Redis использует модель ключ-значение, мы настоятельно рекомендуем выполнять запросы точечно, например, where k=xx или where k in (xx, xx).

Создание таблицы

Параметры движка

  • host:port — адрес сервера Redis, вы можете игнорировать порт, по умолчанию будет использоваться стандартный порт Redis 6379.
  • db_index — индекс базы данных Redis в диапазоне от 0 до 15, по умолчанию 0.
  • password — пароль пользователя, по умолчанию пустая строка.
  • pool_size — максимальный размер пула подключений Redis, по умолчанию 16.
  • primary_key_name - любое имя колонки из списка колонок.
Сериализация

PRIMARY KEY поддерживает только одну колонку. Первичный ключ будет сериализован в двоичном виде как ключ Redis. Колонки, отличные от первичного ключа, будут сериализованы в двоичном виде как значение Redis в соответствующем порядке.

Аргументы также могут быть переданы с использованием именованных коллекций. В этом случае host и port должны быть указаны отдельно. Этот подход рекомендуется для производственной среды. В данный момент все параметры, переданные через именованные коллекции в Redis, являются обязательными.

Фильтрация

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

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

Создайте таблицу в ClickHouse, используя движок Redis с простыми аргументами:

Или используя именованные коллекции:

Вставка:

Запрос:

Обновление:

Обратите внимание, что первичный ключ нельзя обновить.

Удаление:

Усечение:

Асинхронно очистить базу данных Redis. Также Truncate поддерживает режим SYNC.

Соединение:

Соединение с другими таблицами.

Ограничения

Движок Redis также поддерживает запросы сканирования, такие как where k > xx, но у него есть некоторые ограничения:

  1. Запрос на сканирование может привести к появлению дублирующих ключей в очень редких случаях при ре-хешировании. См. подробности в Redis Scan.
  2. Во время сканирования ключи могут создаваться и удаляться, поэтому результирующий набор данных не может представлять собой действительную точку во времени.