Redis Writer是基于数据集成框架实现的Redis写入插件,可以通过Redis Writer从数仓或者其它数据源导入数据至Redis。

Redis(REmote DIctionary Server)是一个可以基于内存也可以持久化的日志型、高性能、支持网络的key-value存储系统,可以用作数据库、高速缓存和消息队列代理。Redis支持较丰富的存储value类型,包括String(字符串)、List(链表)、Set(集合)、ZSet(sorted set有序集合)和Hash(哈希类型)。Redis详情请参见redis.io

Redis Writer与Redis Server之间的交互基于Jedis实现,Jedis是Redis官方首选的Java客户端开发包。
说明
  • 当前仅支持向集群化(Cluster)部署的Redis中导入数据,且数据导入过程仅支持使用独享数据集成资源组
  • 开始配置Redis Writer插件前,请首先配置好数据源,详情请参见配置Redis数据源
  • 使用Redis Writer向Redis写入数据时,如果Value类型是List,重跑同步任务的同步结果不是幂等的。因此,如果Value类型是List ,重跑同步任务时,需要您手动清空Redis上相应的数据。

参数说明

参数 描述 是否必选 默认值
expireTime Redis value值缓存失效时间,单位为秒。如果不填该配置项,则该配置项取值为默认值0,表示永久有效。
expireTime的配置方式有以下两种:
  • seconds方式:指定了从现在开始多长时间后数据失效,取值是失效时间相对当前时间的秒数。
  • unixtime方式:指定了从1970.1.1开始多长时间后数据失效。取值是失效时间相对1970.1.1时间的秒数。
    说明 如果expireTime的取值大于60*60*24*30(即失效时间超过30天),则服务端均将expireTimeunixtime方式进行配置。
0(0表示永久有效)
keyFieldDelimiter 写入Redis的Key分隔符。例如key=key1\u0001id,如果有多个Key需要拼接时,该值为必填项。如果只有一个Key,则可以忽略该配置项。 \u0001
dateFormat 写入Redis时,Date的时间格式为yyyy-MM-dd HH:mm:ss
datasource 数据源名称。该配置项填写的内容必须与添加的数据源名称保持一致。
writeMode Redis Writer写入Redis的value类型包含以下5种:
  • 字符串(string)
  • 字符串列表(list)
  • 字符串集合(set)
  • 有序字符串集合(zset)
  • 哈希(hash)
不同的value类型,writeMode配置会略有差异,详细说明可参见writeMode参数说明
说明 配置Redis Writer时,您需要配置writeMode为支持的5种写入数据类型中的1种类型,且只能配置1种。如果您没有配置,则writeMode取值为默认值string
string
keyIndexes 指定作为key的源端列的列序号。列序号从0开始(即第1列的序号是0,第2列的序号是1,依次类推)。
  • 源端的某一列作为Redis的key时:配置为对应列的序号即可,例如,第1列作为key,则配置为0
  • 源端的连续多列组合作为Redis的key时:配置为对应多列的序号数组,例如,第2列至第4列组合作为key,则配置为[1,3]
说明 配置keyIndexes后,Redis Writer会将其余的列作为Value。如果您只想同步源表的某几列作为Key,某几列作为Value,则无需同步所有字段,在Reader插件端指定好column进行列筛选即可。
batchSize 一次性批量提交的记录数大小。该值可以极大减少数据同步系统与Redis的网络交互次数,