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

redis 表函数

此表函数用于将 ClickHouse 与 Redis 集成。

语法

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

参数

ArgumentDescription
host:portRedis 服务器地址,可以省略端口,此时将使用 Redis 默认端口 6379。
key列表中的任意列名。
structure此函数返回的 ClickHouse 表的表结构(schema)。
db_indexRedis 数据库索引,范围为 0 到 15,默认值为 0。
password用户密码,默认是空字符串。
pool_sizeRedis 最大连接池大小,默认值为 16。
primary必须指定,仅支持主键中的单列。主键将以二进制形式序列化为 Redis key。
  • 主键以外的列将按对应顺序以二进制形式序列化为 Redis value。
  • 带有 key =key IN (...) 过滤条件的查询会被优化为从 Redis 进行多 key 查找。如果查询不包含 key 过滤条件,则会执行全表扫描,这是一个开销很大的操作。

目前 redis 表函数不支持使用 Named collections

返回值

一个表对象,其键为 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);