跳到主要内容
跳到主要内容

Redis 集成

用户可以通过表函数与 Redis 集成。

redis 表函数

该表函数允许将 ClickHouse 与 Redis 集成。

语法

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

参数

参数描述
host:portRedis 服务器地址,您可以忽略端口,将使用默认的 Redis 端口 6379。
key列表中的任何列名。
structure从此函数返回的 ClickHouse 表的模式。
db_indexRedis 数据库索引,范围从 0 到 15,默认为 0。
password用户密码,默认为空字符串。
pool_sizeRedis 最大连接池大小,默认为 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);