You need to enable JavaScript to run this app.
文档中心
大数据研发治理套件

大数据研发治理套件

复制全文
下载 pdf
高级参数
配置 Redis Connector 高级参数
复制全文
下载 pdf
配置 Redis Connector 高级参数

本文介绍了 DataSail Redis Connector 的高级参数配置,内容涵盖适用场景、推荐配置与调优建议等,可以帮助您实现高效、稳定的数据同步。

1 Source 参数(job.reader.*

1.1 总览

参数

默认值

说明

job.reader.class

框架固定为 Redis Source 实现类,一般不需要用户调整。

job.reader.columns

定义读取输出 schema;默认模式会强校验 7 列类型。

job.reader.reader_parallelism_num

自动估算

显式指定 Source 并行度;一般在性能/稳定性调优时使用。

job.reader.skip_schema_validation

false

跳过 schema 校验;常与 enable_flat_value=true 联动。

job.reader.deploy_mode

single

选择 single / cluster;直接决定是否可用 pipeline 读等能力。

job.reader.nodes

Redis 节点地址(cluster 通常配置多个)。

job.reader.user

Redis 6+ ACL 用户名;不配则不设置。

job.reader.auth

Redis 密码 / ACL password;不配则不设置。

job.reader.db_index

0

standalone 选择 DB;cluster 下通常无 DB 概念。

job.reader.key_pattens

*

key 匹配 pattern 列表(逗号分隔),注意拼写是 pattens。

job.reader.read_mode

all

key 获取模式:all=KEYS,scan=SCAN;线上优先 scan。

job.reader.scan_batch_size

10000

SCAN 的 COUNT hint;影响扫描吞吐与 Redis 压力。

job.reader.schema_type

default

当前仅支持 default;其他值会导致作业失败。

job.reader.client_timeout_ms

60000

Jedis 连接/读超时;过小会放大失败重试,过大延迟更高。

job.reader.connection_pool_max_total

2

读侧连接池最大连接数;通常需要随并行度一起评估。

job.reader.connection_pool_max_idle

2

读侧连接池最大空闲连接数;偏向稳定性配置。

job.reader.connection_pool_min_idle

0

读侧连接池最小空闲连接数;偏向连接复用与冷启动耗时权衡。

job.reader.connection_pool_max_wait_time_ms

60000

pool 获取连接最大等待;过小易报连接不足,过大易堆积延迟。

job.reader.max_attempt_count

5

读侧重试次数;用于吸收短暂抖动,但会增加整体延迟。

job.reader.enable_flat_value

false

拆平复杂类型输出;更灵活但可能更占网络/内存。

job.reader.redis_parallel_read

false

启用并行 key 扫描 + 分配;会间接启用 pipeline 读(仅 single 支持)。

job.reader.redis_pipeline_read

false

启用 pipeline 读提升吞吐(仅 single 支持)。

job.reader.redis_batch_size

1000

pipeline 读每批 key 数;越大吞吐越高但内存峰值更高。

job.reader.redis_pipeline_read_thread_num

2

pipeline 多线程读线程数;仅 pipeline 模式生效。

job.reader.redis_wait_split_time_ms

50

无 split 时 sleep 等待;用于降低空转与调度开销。

job.reader.reader_fetch_size

10000

flat 模式下对 set/hash/zset 的 scan/chunk size;影响读放大。

1.2 参数使用说明

job.reader.class

参数概述
  • 作用:指定 Redis Source 实现类。
  • 默认值:无(通常由框架或模板配置给定)。

适用场景
  • 仅在你需要显式指定 connector 实现(或做兼容迁移)时关注。

建议配置与调参方向
  • 一般保持模板默认即可,不建议随意修改。

参数联动与注意事项
  • 该参数只决定“用哪个 Source”,不会直接影响性能。

总结说明

job.reader.class 通常是框架固定项,除非明确知道要切换 Source 实现,否则保持默认即可。

job.reader.columns

参数概述
  • 作用:定义 Redis Source 的输出 schema(字段名与类型)。
  • 默认值:无,通常必须配置。

适用场景
  • 你需要把 Redis 的 key/type/ttl/value 等信息输出给下游(Flink/写入其他存储)。

建议配置与调参方向
  • 默认模式(推荐):严格按固定 7 列定义,便于通用消费。
  • 如果你要开启 enable_flat_value=true(拆平输出),通常需要同步开启 skip_schema_validation=true

参数联动与注意事项
  • job.reader.skip_schema_validationjob.reader.enable_flat_value 强联动。
  • 常见启动失败原因:列数不为 7 或类型不匹配(现象类似:columns number not valid / column type config is not valid)。

总结说明

job.reader.columns 决定了 Redis Source 的输出结构,默认会校验 7 列类型,配置时优先按默认 schema 来,只有在需要“拆平输出”时才考虑绕过校验。

job.reader.reader_parallelism_num

参数概述
  • 作用:显式指定 Redis Source 的并行度。
  • 默认值:不配时由连接器根据 Redis 模式与 split 估算并给出建议。

适用场景
  • 你希望稳定控制读取并发(例如:避免并行度波动、限制 Redis 压力、或提升吞吐)。

建议配置与调参方向
  • 吞吐优先:适当调大并行度,同时评估 Redis 侧 QPS、CPU、慢日志。
  • 稳定性优先:并行度不要盲目增大,尤其是 read_mode=all(KEYS)时。

参数联动与注意事项
  • 并行度增大通常需要一起评估:connection_pool_*client_timeout_msmax_attempt_count
  • 对于 redis_parallel_read=true 场景,并行度会影响 split 分配与扫描成本。

总结说明

job.reader.reader_parallelism_num 是“控并发”的抓手:调大通常提升吞吐但会增加 Redis 压力,调小更稳但可能变慢。

job.reader.skip_schema_validation

参数概述
  • 作用:跳过 Redis Source 的 schema 强校验。
  • 默认值false

适用场景
  • 你启用 enable_flat_value=true 或者需要临时绕过严格校验以做排障验证。

建议配置与调参方向
  • 默认推荐:保持 false
  • 需要拆平输出时:将其设为 true,并确保下游能够消费你定义的字段类型。

参数联动与注意事项
  • job.reader.enable_flat_value 强联动。
  • 跳过校验不等于“随便配都能跑”,只是把错误从“启动期”推迟到“运行期/下游”。

总结说明

skip_schema_validation 是“放宽约束”的开关,建议只在拆平输出或排障时打开,平时保持默认更稳。

job.reader.deploy_mode

参数概述
  • 作用:指定 Redis 部署模式。
  • 可选值single / cluster
  • 默认值single

适用场景
  • 你连接的是单机 Redis / 哨兵代理(一般按 single 处理)还是 Redis Cluster。

建议配置与调参方向
  • 连接 Cluster 时务必设为 cluster,并在 nodes 里配置多个节点。
  • 若你希望使用 pipeline 读提升吞吐,目前仅能在 single 下启用。

参数联动与注意事项
  • 强约束:当 deploy_mode=cluster 时,redis_pipeline_read=trueredis_parallel_read=true 会导致作业失败(常见报错关键字类似:pipeline read is only supported in SINGLE deploy mode)。
  • nodes 配置方式强联动。

FAQ(用户提问)
  • 问:我用的是 Redis Cluster,为什么启用 pipeline 读后任务启动失败?
    • :当前实现下 pipeline 读只支持 deploy_mode=single。Cluster 场景建议关闭 redis_pipeline_readredis_parallel_read,并通过并行度/scan 等手段调优。

总结说明

deploy_mode 决定了连接器走 single 还是 cluster 客户端路径,并直接决定 pipeline 读是否可用;cluster 场景务必关闭 pipeline/parallel 读。

job.reader.nodes

参数概述
  • 作用:Redis 节点列表,格式:ip:port[,ip2:port2]
  • 默认值:无,通常必须配置。

适用场景
  • single:通常配置一个节点即可。
  • cluster:建议配置多个节点,提高连接成功率与拓扑发现稳定性。

建议配置与调参方向
  • cluster 场景至少配置 2~3 个可用节点(同集群不同节点)。

参数联动与注意事项
  • deploy_mode 强联动。
  • 如果节点不可达,常见现象包括连接超时(timeout)、connection refused。

总结说明

nodes 是 Redis Source 的连接入口,single 配一个即可,cluster 建议多配几个节点以增强稳定性。

job.reader.user

参数概述
  • 作用:Redis 6+ ACL 用户名。
  • 默认值:无(不配则不设置 user)。

适用场景
  • 你的 Redis 使用 ACL 体系,需要 user + password 认证。

建议配置与调参方向
  • job.reader.auth 配套使用。

参数联动与注意事项
  • 若只配置 password 而没有 user,是否可用取决于 Redis 的认证模式;建议按实际集群要求配置。

总结说明

启用 ACL 的 Redis 建议同时配置 job.reader.userjob.reader.auth;否则保持为空即可。

job.reader.auth

参数概述
  • 作用:Redis 密码或 ACL password。
  • 默认值:无(不配则不设置 password)。

适用场景
  • Redis 开启认证。

建议配置与调参方向
  • 作为敏感信息,建议通过安全配置/密钥管理注入。

参数联动与注意事项
  • job.reader.user 常成对出现(ACL)。

总结说明

job.reader.auth 用于认证,配不配取决于你的 Redis 是否开启密码/ACL。

job.reader.db_index

参数概述
  • 作用:选择 Redis DB(standalone 常用)。
  • 默认值0

适用场景
  • 你在单机 Redis 上用 DB 分库(0~15 等)。

建议配置与调参方向
  • 如果业务数据不在 DB0,需显式设置。

参数联动与注意事项
  • cluster 场景通常不使用 DB 概念,此参数一般不生效或无需关注。

总结说明

单机 Redis 用多 DB 时关注 db_index;cluster 场景通常不用。

job.reader.key_pattens

参数概述
  • 作用:要读取的 key pattern 列表(逗号分隔)。
  • 默认值*(全量)。

适用场景
  • 你只想读取某一类前缀/业务 key,例如 biz:*order:*

建议配置与调参方向
  • 建议尽量缩小匹配范围,减少扫描成本。
  • 多个 pattern 用逗号分隔,例如:biz:* , order:*

参数联动与注意事项
  • 注意拼写:参数名是 key_pattens(不是 patterns)。
  • read_mode(KEYS/SCAN)共同决定 Redis 侧扫描压力。

总结说明

key_pattens 用于控制要读哪些 key,越精确越省资源;务必注意参数名拼写。

job.reader.read_mode

参数概述
  • 作用:决定如何获取 key。
  • 可选值all / scan
  • 默认值all

适用场景
  • all:小规模 keyspace、离线环境、或确定不会影响线上 Redis 时。
  • scan:生产环境/大 keyspace(推荐)。

建议配置与调参方向
  • 线上默认推荐scan
  • 若必须使用 all,建议同时降低并行度、缩小 key_pattens,并在低峰执行。

参数联动与注意事项
  • scan_batch_sizekey_pattens 强联动。
  • all 模式常见风险:Redis 卡顿、慢查询、延迟尖刺。

FAQ(用户提问)
  • 问:为什么一启动读取作业 Redis 延迟突然升高?
    • :优先检查是否使用了 read_mode=all(KEYS)。生产建议切换为 scan 并控制 pattern 与并行度。

总结说明

read_mode 是 Redis Source 最重要的稳定性参数之一:线上优先 scan,避免 KEYS 的阻塞风险。

job.reader.scan_batch_size

参数概述
  • 作用:SCAN 的 COUNT hint(每次期望返回的数量)。
  • 默认值10000

适用场景
  • read_mode=scanredis_parallel_read=true 时,用于控制扫描吞吐与压力。

建议配置与调参方向
  • 吞吐优先:可适当调大(例如 20000、50000),但需要关注 Redis CPU、网络与慢日志。
  • 稳定性优先:可适当调小(例如 1000、5000),降低单次扫描压力。

参数联动与注意事项
  • read_mode=scanredis_parallel_read 强联动。

总结说明

scan_batch_size 是 scan 模式下的“节流阀”,调大更快但更压 Redis,调小更稳但可能更慢。

job.reader.schema_type

参数概述
  • 作用:schema 解析模式。
  • 默认值default

适用场景
  • 当前仅支持 default,一般无需修改。

建议配置与调参方向
  • 保持默认。

参数联动与注意事项
  • 配置为其他值会导致作业直接失败(现象类似:schema_type is not supported)。

总结说明

schema_type 目前是保留扩展点,生产环境保持 default 即可。

job.reader.client_timeout_ms

参数概述
  • 作用:Jedis 连接/读超时。
  • 默认值60000(ms)。

适用场景
  • 网络抖动、Redis 响应慢、或跨机房访问时,超时参数会影响失败率与重试行为。

建议配置与调参方向
  • 排障临时配置:可适当调大(例如 120000),减少超时报错;但会拉长失败恢复时间。
  • 实时性优先:可适当调小(例如 10000~30000),更快失败更快重试;但可能放大抖动影响。

参数联动与注意事项
  • max_attempt_count、连接池 connection_pool_* 联动。

总结说明

client_timeout_ms 决定了“等多久算失败”,调小更敏捷但更敏感,调大更稳但更慢。

job.reader.connection_pool_max_total

参数概述
  • 作用:连接池最大连接数。
  • 默认值2

适用场景
  • 并行度较高、单个并发任务需要更多连接时。

建议配置与调参方向
  • 通常随并行度与 Redis 侧连接限制一起评估;不要仅凭感觉拉大。

参数联动与注意事项
  • connection_pool_max_wait_time_ms 强联动(连接不足时会等待)。

总结说明

connection_pool_max_total 控制最大并发连接数量,过小可能阻塞,过大可能压垮 Redis 或触发连接数限制。

job.reader.connection_pool_max_idle

参数概述
  • 作用:连接池最大空闲连接数。
  • 默认值2

适用场景
  • 你希望减少频繁建连带来的开销,提升稳定性。

建议配置与调参方向
  • 一般与 max_total 保持同量级即可。

参数联动与注意事项
  • 如果空闲连接过多,在连接数受限的 Redis 环境里可能“占坑”。

总结说明

connection_pool_max_idle 更多影响连接复用与稳定性,通常不需要大幅调整。

job.reader.connection_pool_min_idle

参数概述
  • 作用:连接池最小空闲连接数。
  • 默认值0

适用场景
  • 你希望任务冷启动后尽量保持一定数量的可用连接,减少瞬时建连抖动。

建议配置与调参方向
  • 对短作业或资源紧张环境,保持 0 更省。
  • 对长跑作业且网络抖动明显,可适当设置为 1~2。

参数联动与注意事项
  • max_idle/max_total 联动。

总结说明

connection_pool_min_idle 决定是否“预热连接”,一般按稳定性需求小幅设置即可。

job.reader.connection_pool_max_wait_time_ms

参数概述
  • 作用:从连接池获取连接的最大等待时间。
  • 默认值60000(ms)。

适用场景
  • 连接池连接不足时,决定“最多等多久”。

建议配置与调参方向
  • 实时性优先:可适当调小(例如 5000~10000),快速失败并暴露连接不足问题。
  • 稳定性优先:保持默认或略调大,减少瞬时峰值导致的失败。

参数联动与注意事项
  • connection_pool_max_total、并行度联动。

总结说明

connection_pool_max_wait_time_ms 决定了连接不足时的等待策略:调小更快暴露问题,调大更“抗波峰”但可能积压延迟。

job.reader.max_attempt_count

参数概述
  • 作用:读侧失败重试次数上限。
  • 默认值5

适用场景
  • Redis 偶发抖动、网络偶发超时,需要通过重试提高成功率。

建议配置与调参方向
  • 抖动较多:可适当调大(例如 8~10)。
  • 实时性优先:可适当调小(例如 1~3),避免长时间卡在重试上。

参数联动与注意事项
  • client_timeout_ms 相乘决定“最坏情况下卡多久”。

总结说明

max_attempt_count 用于提高抗抖动能力,但会增加最坏时延;调参时记得同时看 client_timeout_ms

job.reader.enable_flat_value

参数概述
  • 作用:将复杂类型(list/map 等)拆平为字符串输出,提升兼容性。
  • 默认值false

适用场景
  • 下游不方便接收复杂类型(list/map),希望统一用 string 处理。
  • 你只需要“扁平化后的展示/落盘”,不需要保留原始复杂结构。

建议配置与调参方向
  • 开启后建议同步开启 skip_schema_validation=true,并明确下游消费约定。

参数联动与注意事项
  • skip_schema_validationreader_fetch_size 联动。
  • flat 模式下如果对 set/hash/zset 做更深度展开,可能带来额外网络与内存开销。

总结说明

enable_flat_value 让输出更“通用”,但可能带来读放大;适合做兼容/落盘,不适合盲目开启。

job.reader.redis_parallel_read

参数概述
  • 作用:启用并行 key 扫描与 split 分配。
  • 默认值false

适用场景
  • key 数量很多,希望提升“获取 key + 读取 value”的整体吞吐。

建议配置与调参方向
  • 仅在 deploy_mode=single 下使用
  • 建议从小并行度开始逐步加,观察 Redis 侧压力。

参数联动与注意事项
  • 开启后会间接启用 pipeline 读,因此与 redis_batch_sizeredis_pipeline_read_thread_num 联动。

总结说明

redis_parallel_read 更偏向“吞吐加速”,但对部署模式有硬约束,且会增加 Redis 压力,建议谨慎逐步放量。

job.reader.redis_pipeline_read

参数概述
  • 作用:启用 pipeline 批量读取(提升吞吐)。
  • 默认值false

适用场景
  • 读取吞吐成为瓶颈,希望减少请求往返次数。

建议配置与调参方向
  • 仅在 deploy_mode=single 下使用
  • 一般先保持 redis_batch_size=1000,再根据内存与吞吐调整。

参数联动与注意事项
  • redis_batch_sizeredis_pipeline_read_thread_num 联动。

总结说明

redis_pipeline_read 是“吞吐开关”,能显著减少网络往返,但会提高单次批处理的内存峰值;且 cluster 不支持。

job.reader.redis_batch_size

参数概述
  • 作用:pipeline 读每批处理的 key 数。
  • 默认值1000

适用场景
  • pipeline 模式下,用于权衡吞吐与内存。

建议配置与调参方向
  • 吞吐优先:可逐步调大(例如 2000、5000)。
  • 内存/稳定性优先:调小(例如 200、500)。

参数联动与注意事项
  • 仅在 redis_pipeline_read=trueredis_parallel_read=true 时生效。

总结说明

redis_batch_size 越大通常越快,但也越吃内存;建议循序渐进调参并监控 Task 内存。

job.reader.redis_pipeline_read_thread_num

参数概述
  • 作用:pipeline 多线程读线程数。
  • 默认值2

适用场景
  • pipeline 读 CPU 成为瓶颈,希望通过多线程提高单个 subtask 的并发处理能力。

建议配置与调参方向
  • 从 2 开始,小幅上调(例如 4、8),并关注:CPU、GC、Redis QPS。

参数联动与注意事项
  • 仅在 pipeline 模式下生效;非 pipeline 模式即使配置>1也会被忽略。

总结说明

redis_pipeline_read_thread_num 只对 pipeline 生效,用于把“单个 subtask 的读取处理”做并行化,建议小步调整。

job.reader.redis_wait_split_time_ms

参数概述
  • 作用:当 reader 暂时没有 split 可读时的 sleep 等待时间。
  • 默认值50(ms)。

适用场景
  • 任务运行中出现“频繁请求 split 但短时间拿不到”的空转场景,希望降低 CPU 空转与调度开销。

建议配置与调参方向
  • CPU 空转明显:可适当调大(例如 100~500)。
  • 追求极低延迟:可适当调小,但不建议小于 1。

参数联动与注意事项
  • 过小会导致更频繁的调度与日志;过大会增加拿到 split 后的响应延迟。

总结说明

redis_wait_split_time_ms 用于降低空转成本,调大更省 CPU,调小更“敏捷”,建议按实际空转情况微调。

job.reader.reader_fetch_size

参数概述
  • 作用:flat 模式下,对 set/hash/zset 的 scan count 与 list chunk size。
  • 默认值10000

适用场景
  • enable_flat_value=true 时,影响复杂结构的读取分批粒度。

建议配置与调参方向
  • 值越大,单次拉取越多,吞吐可能更高但更占内存。
  • 值越小,更稳但可能更慢。

参数联动与注意事项
  • 主要与 enable_flat_value 联动。

总结说明

reader_fetch_size 是 flat 模式下的“分页大小”,调大更快但更吃内存,调小更稳但可能更慢。

2 Sink 参数(job.writer.*

2.1 总览

参数

默认值

说明

job.writer.class

框架固定为 Redis Sink 实现类,一般不需要用户调整。

job.writer.columns

定义写入侧 schema;会影响不同 redis_data_type 下的列解释。

job.writer.redis_host

Redis host;为空时会回退读 job.writer.host

job.writer.redis_port

Redis port;为空时会回退读 job.writer.port

job.writer.host

兼容字段,仅在 redis_host 为空时回退使用。

job.writer.port

兼容字段,仅在 redis_port 为空时回退使用。

job.writer.user_name

ACL 用户(优先);为空时回退读 job.writer.user

job.writer.password

密码(优先);为空时回退读 job.writer.auth

job.writer.user

兼容字段,仅在 user_name 为空时回退使用。

job.writer.auth

兼容字段,仅在 password 为空时回退使用。

job.writer.database

0

选择 Redis DB(standalone 常用)。

job.writer.client_timeout_ms

60000

Jedis 连接/读写超时,影响失败率与恢复速度。

job.writer.ttl

-1

key TTL;-1 表示不设置。

job.writer.ttl_type

DAY

TTL 单位:DAY/HOUR/MINUTE/SECOND。

job.writer.redis_data_type

string

写入数据结构:string/set/hash/mhash/sorted_set;决定列语义与命令。

job.writer.additional_key

无(内部会用 default_redis_key)

复杂类型在“入参列不足”时补充容器 key。

job.writer.write_batch_interval

50

写入攒批队列容量(满则 flush);吞吐/延迟/内存的关键权衡点。

job.writer.log_sample_interval

256

pipeline 日志采样间隔,用于控制日志量。

job.writer.connection_pool_max_total

2

写侧连接池最大连接数;通常需要随并行度一起评估。

job.writer.connection_pool_max_idle

2

写侧连接池最大空闲连接数。

job.writer.connection_pool_min_idle

0

写侧连接池最小空闲连接数。

job.writer.connection_pool_max_wait_time_ms

60000

pool 获取连接最大等待;过小易报连接不足,过大易堆积延迟。

job.writer.max_attempt_count

5

写侧重试次数上限;提升抗抖动能力但会增大最坏延迟。

job.writer.delete_by_key_before_writing_enabled

false

写前先 DEL;用于覆盖写/避免集合追加脏数据,但会产生写放大。

2.2 参数使用说明

job.writer.class

参数概述
  • 作用:指定 Redis Sink 实现类。
  • 默认值:无(通常由框架或模板配置给定)。

适用场景
  • 仅在你需要显式指定 connector 实现(或做兼容迁移)时关注。

建议配置与调参方向
  • 一般保持模板默认即可,不建议随意修改。

参数联动与注意事项
  • 该参数只决定“用哪个 Sink”,不会直接影响性能。

总结说明

job.writer.class 通常是框架固定项,除非明确知道要切换 Sink 实现,否则保持默认即可。

job.writer.columns

参数概述
  • 作用:定义写入侧的列 schema(字段类型),连接器会据此解释每列的含义。
  • 默认值:无,通常必须配置。

适用场景
  • 你写不同 redis_data_type 时,列数与列语义不同:
    • string / set:通常 2 列(key, value)
    • hash / sorted_set:通常 3 列(key, field/score, value)
    • mhash:通常用于列数超过 3 的“多字段写入”。

建议配置与调参方向
  • 列类型建议优先使用 string(除非明确需要 binary 等)。
  • 对于 sorted_set,score 列通常需要可转数值的内容。

参数联动与注意事项
  • redis_data_typeadditional_key 强联动。
  • 常见运行期失败:列数/类型与所选 data_type 不匹配。

总结说明

job.writer.columns 决定了写入数据的“解释方式”,配之前先明确 redis_data_type,再按该类型要求配置列数与列类型。

job.writer.redis_host

参数概述
  • 作用:Redis host。
  • 默认值:无(运行时必需)。

适用场景
  • 连接 Redis 服务。

建议配置与调参方向
  • 优先使用 redis_host/redis_port 这一组参数。

参数联动与注意事项
  • 若为空,会回退读取 job.writer.host(兼容字段)。

总结说明

写 Redis 必须能连上目标实例,建议显式配置 redis_hostredis_port,避免依赖兼容字段。

job.writer.redis_port

参数概述
  • 作用:Redis port。
  • 默认值:无(运行时必需)。

适用场景
  • 连接 Redis 服务。

建议配置与调参方向
  • 优先使用 redis_host/redis_port 这一组参数。

参数联动与注意事项
  • 若为空,会回退读取 job.writer.port(兼容字段)。

总结说明

redis_port 是写入侧连接入口之一,建议与 redis_host 成对显式配置。

job.writer.host

参数概述
  • 作用:兼容字段,仅在 redis_host 为空时回退使用。

适用场景
  • 历史配置仍写在 job.writer.host

建议配置与调参方向
  • 新配置建议迁移到 job.writer.redis_host

参数联动与注意事项
  • 同时配置时,redis_host 优先生效。

总结说明

job.writer.host 是兼容字段,建议逐步迁移到 redis_host 以减少歧义。

job.writer.port

参数概述
  • 作用:兼容字段,仅在 redis_port 为空时回退使用。

适用场景
  • 历史配置仍写在 job.writer.port

建议配置与调参方向
  • 新配置建议迁移到 job.writer.redis_port

参数联动与注意事项
  • 同时配置时,redis_port 优先生效。

总结说明

job.writer.port 是兼容字段,建议逐步迁移到 redis_port 以减少歧义。

job.writer.user_name

参数概述
  • 作用:Redis 6+ ACL 用户名(优先字段)。
  • 默认值:无。

适用场景
  • Redis 启用 ACL 认证。

建议配置与调参方向
  • 建议与 job.writer.password 配套使用。

参数联动与注意事项
  • 若为空,会回退读取 job.writer.user

总结说明

ACL 场景建议优先使用 user_name/password 这一组参数,避免与兼容字段混用。

job.writer.password

参数概述
  • 作用:Redis 密码 / ACL password(优先字段)。
  • 默认值:无。

适用场景
  • Redis 开启认证。

建议配置与调参方向
  • 作为敏感信息,建议通过安全配置/密钥管理注入。

参数联动与注意事项
  • 若为空,会回退读取 job.writer.auth

总结说明

password 用于写入侧认证,建议用安全方式管理并与 user_name 配套。

job.writer.user

参数概述
  • 作用:兼容字段,仅在 user_name 为空时回退使用。

适用场景
  • 历史配置仍使用 job.writer.user

建议配置与调参方向
  • 建议迁移到 job.writer.user_name

参数联动与注意事项
  • 同时配置时,user_name 优先生效。

总结说明

job.writer.user 是兼容字段,建议迁移到 user_name

job.writer.auth

参数概述
  • 作用:兼容字段,仅在 password 为空时回退使用。

适用场景
  • 历史配置仍使用 job.writer.auth

建议配置与调参方向
  • 建议迁移到 job.writer.password

参数联动与注意事项
  • 同时配置时,password 优先生效。

总结说明

job.writer.auth 是兼容字段,建议迁移到 password

job.writer.database

参数概述
  • 作用:选择 Redis DB。
  • 默认值0

适用场景
  • 单机 Redis 用多 DB 分库。

建议配置与调参方向
  • 业务数据在哪个 DB 就配置哪个。

参数联动与注意事项
  • 与 host/port 一起决定最终连接目标。

总结说明

database 用于选择写入的 DB,单机多 DB 场景才需要关注。

job.writer.client_timeout_ms

参数概述
  • 作用:Jedis 连接/读写超时。
  • 默认值60000(ms)。

适用场景
  • 网络抖动、Redis 响应慢、写入有时延波动。

建议配置与调参方向
  • 排障临时配置:适当调大以减少 timeout。
  • 实时性优先:适当调小以更快失败与恢复。

参数联动与注意事项
  • max_attempt_count 相乘决定最坏写入卡住时间。

总结说明

client_timeout_ms 是“等待阈值”,调小更敏捷但更敏感,调大更稳但失败恢复更慢。

job.writer.ttl

参数概述
  • 作用:写入 key 的 TTL。
  • 默认值-1(不设置 TTL)。

适用场景
  • 你希望写入的数据自动过期(缓存类场景)。

建议配置与调参方向
  • 默认推荐:不需要过期就保持 -1
  • 需要过期时:设为正整数,并配合 ttl_type 指定单位。

参数联动与注意事项
  • ttl_type 联动决定最终过期秒数。
  • string 类型,TTL 会走“带 TTL 的写入命令”;对复杂类型,可能引入额外写入动作,带来一定写放大与性能影响。

FAQ(用户提问)
  • 问:为什么设置了 TTL 后写入变慢了?
    • :复杂类型(hash/set/zset/mhash)设置 TTL 往往需要额外处理,可能带来写放大。建议先评估是否必须对复杂结构设置 TTL;必要时通过攒批/并发等方式弥补吞吐。

总结说明

ttl 用于控制数据生命周期,缓存场景很常用;但对复杂类型可能引入额外开销,建议结合吞吐与 Redis 压力一起评估。

job.writer.ttl_type

参数概述
  • 作用:TTL 单位。
  • 默认值DAY
  • 可选值DAY / HOUR / MINUTE / SECOND

适用场景
  • 你希望用更直观的单位表达过期时间(例如 1 DAY / 10 MINUTE)。

建议配置与调参方向
  • 短期缓存:常用 MINUTE/SECOND
  • 长期缓存:常用 HOUR/DAY

参数联动与注意事项
  • ttl 联动:最终秒数 = ttl * ttl_type
  • 配置非法值会导致作业启动失败(unknown ttl type)。

总结说明

ttl_type 用于定义 TTL 的时间单位,建议结合业务的缓存周期选择合适粒度。

job.writer.redis_data_type

参数概述
  • 作用:指定写入 Redis 的数据结构类型。
  • 默认值string
  • 可选值string / set / hash / mhash / sorted_set

适用场景
  • 你希望用不同 Redis 结构表达数据:
    • string:key -> value
    • set:key -> set(value)
    • hash:key -> hash(field -> value)
    • mhash:key -> hash(多个 field -> value),通常用于列数 > 3 的写入
    • sorted_set:key -> zset(score, member)

建议配置与调参方向
  • 不确定时优先用 string(最直观、最少歧义)。
  • hash/sorted_set 时,务必对齐列数与列语义。

参数联动与注意事项
  • columns 强联动:列数/列语义不匹配会导致运行失败或写入不符合预期。
  • ttl/ttl_type 联动:是否需要 TTL、以及对复杂类型可能带来的额外开销。

FAQ(用户提问)
  • 问:我配置了 hash,但写出来的数据结构不对?
    • :优先检查 columns 是否为 3 列(key、hash field、hash value)。如果只有 2 列,需要结合 additional_key 来补足“容器 key”的语义。

总结说明

redis_data_type 决定了写入的 Redis 结构与命令语义,是写入侧最核心的参数之一;配之前先明确目标数据结构,再按要求配置列。

job.writer.additional_key

参数概述
  • 作用:当写入 hash/sorted_set/mhash 等复杂类型且“入参列不足”时,用于补充容器 key。
  • 默认值:不配置时内部会使用 default_redis_key

适用场景
  • 你的输入只有 2 列,但选择了需要 3 列语义的类型(典型是 hashsorted_set)。

建议配置与调参方向
  • 如果你希望把数据写到固定的 hash/zset 容器里,建议显式设置 additional_key,避免默认值导致数据落到意料之外的位置。

参数联动与注意事项
  • redis_data_typecolumns 联动。

总结说明

additional_key 是复杂类型写入的“兜底容器 key”,当你输入列不够时才需要;建议显式配置以避免写入到默认容器。

job.writer.write_batch_interval

参数概述
  • 作用:写入侧攒批队列容量,队列满触发一次 flush。
  • 默认值50

适用场景
  • 你在吞吐与写入延迟之间做权衡:
    • 大 batch 更省网络往返、吞吐更高
    • 小 batch 延迟更低、内存峰值更小

建议配置与调参方向
  • 默认推荐:保持 50。
  • 吞吐优先:可尝试 200、500、1000(需关注 Task 内存与 Redis QPS)。
  • 实时性/低延迟优先:可尝试 10、20。
  • 排障临时配置:可设为 1,便于定位单条写入问题(吞吐会显著下降)。

参数联动与注意事项
  • max_attempt_countclient_timeout_ms、连接池 connection_pool_* 联动。
  • 该参数是当前版本真正生效的“batch size”,不要误以为 write_batch_size 会生效。

FAQ(用户提问)
  • 问:我把并行度调大了但吞吐还是上不去?
    • :检查 write_batch_interval 是否过小(导致频繁 flush),以及连接池 connection_pool_max_total 是否过小导致连接阻塞。

总结说明

write_batch_interval 是写入侧的关键调优参数:调大通常提升吞吐但增加延迟与内存峰值,调小则相反。

job.writer.log_sample_interval

参数概述
  • 作用:写入 pipeline 日志采样间隔,用于控制日志量。
  • 默认值256

适用场景
  • 你希望减少日志噪声或在排障时增加可观测性。

建议配置与调参方向
  • 排障时可适当调小;稳定运行时保持默认即可。

参数联动与注意事项
  • 只影响日志量,不直接影响写入语义。

总结说明

log_sample_interval 是观测性参数,稳定运行保持默认,排障时再调小即可。

job.writer.connection_pool_max_total

参数概述
  • 作用:写侧连接池最大连接数。
  • 默认值2

适用场景
  • 写并发较高、单任务需要更多连接时。

建议配置与调参方向
  • 结合 writer 并行度与 Redis 侧连接数限制评估。

参数联动与注意事项
  • connection_pool_max_wait_time_ms 联动。

总结说明

connection_pool_max_total 过小会导致写入等待连接,过大可能触发 Redis 连接数限制;建议基于监控与压测逐步调整。

job.writer.connection_pool_max_idle

参数概述
  • 作用:写侧连接池最大空闲连接数。
  • 默认值2

适用场景
  • 你希望更充分复用连接、减少建连开销。

建议配置与调参方向
  • 通常与 max_total 同量级即可。

参数联动与注意事项
  • 空闲连接过多可能在连接数受限环境里占用资源。

总结说明

connection_pool_max_idle 主要影响连接复用,一般无需大幅调整。

job.writer.connection_pool_min_idle

参数概述
  • 作用:写侧连接池最小空闲连接数。
  • 默认值0

适用场景
  • 长跑作业希望保持一定的预热连接。

建议配置与调参方向
  • 稳定性需求高时可设为 1~2;资源敏感时保持 0。

参数联动与注意事项
  • max_idle/max_total 联动。

总结说明

connection_pool_min_idle 用于“预热连接”,按稳定性需求小幅配置即可。

job.writer.connection_pool_max_wait_time_ms

参数概述
  • 作用:从连接池获取连接的最大等待时间。
  • 默认值60000(ms)。

适用场景
  • 连接不足时决定等待策略。

建议配置与调参方向
  • 实时性优先可调小;稳定性优先可保持默认。

参数联动与注意事项
  • connection_pool_max_total、写并行度联动。

总结说明

connection_pool_max_wait_time_ms 决定了连接不足时的等待上限,调参时建议先找出连接不足的根因。

job.writer.max_attempt_count

参数概述
  • 作用:写侧失败重试次数上限。
  • 默认值5

适用场景
  • Redis 偶发抖动、网络抖动导致的写失败,希望通过重试提高成功率。

建议配置与调参方向
  • 抖动多可适当调大;实时性优先可调小。

参数联动与注意事项
  • client_timeout_ms 相乘决定最坏写入卡住时间。

总结说明

max_attempt_count 能提升抗抖动能力,但会增加最坏延迟;建议结合超时参数一起评估。

job.writer.delete_by_key_before_writing_enabled

参数概述
  • 作用:写入前先对目标 key 执行 DEL,再执行实际写入。
  • 默认值false

适用场景
  • 你希望得到“覆盖写”语义,避免集合/哈希类写入时出现旧元素残留。

建议配置与调参方向
  • 默认推荐:保持 false
  • 需要覆盖写:设为 true,并评估 Redis QPS 与写入延迟(会有写放大)。

参数联动与注意事项
  • 会带来明显写放大:每条记录至少多一次 DEL
  • 对 Redis 压力较大的场景不建议开启,除非业务确实需要覆盖语义。

FAQ(用户提问)
  • 问:为什么开启后 Redis QPS 翻倍了?
    • :因为每条写入变成了“DEL + 写命令”,属于预期写放大。建议只在确实需要覆盖写时开启,并通过攒批/限流/并发控制保护 Redis。

总结说明

delete_by_key_before_writing_enabled 是“用性能换一致性”的开关:能避免旧数据残留,但会显著增加 Redis 压力,务必谨慎使用。

最近更新时间:2026.05.07 14:27:36
这个页面对您有帮助吗?
有用
有用
无用
无用