配置参数

Redis 查询引擎可以通过多个配置参数进行调整。其中一些参数只能在加载时设置,而其他参数可以在加载时或运行时设置。

注意

从 Redis Open Source (Redis 8) 的 Redis 8 开始,时间序列数据结构的配置参数现在可以通过以下方式设置

  • 在加载时通过您的 redis.conf 文件设置。
  • 在运行时(如适用)使用 CONFIG SET 命令设置。

此外,Redis 8 会像持久化其他任何配置参数一样持久化 RQE 配置参数(例如,使用 CONFIG REWRITE 命令)。

RQE 配置参数

下表总结了哪些配置参数可以在运行时设置,以及与 Redis Software 和 Redis Cloud 的兼容性。

参数名称
(版本 < 8.0)
参数名称
(版本 ≥ 8.0)
运行时 Redis
Software
Redis
Cloud
BG_INDEX_SLEEP_GAP search-bg-index-sleep-gap
CONCURRENT_WRITE_MODE search-concurrent-write-mode ✅ 支持

✅ 灵活版 & 包年版
❌ 免费版 & 固定版
CONN_PER_SHARD search-conn-per-shard
CURSOR_MAX_IDLE search-cursor-max-idle ✅ 支持

✅ 灵活版 & 包年版
❌ 免费版 & 固定版
CURSOR_READ_SIZE search-cursor-read-size ✅ 支持

✅ 灵活版 & 包年版
❌ 免费版 & 固定版
CURSOR_REPLY_THRESHOLD search-cursor-reply-threshold
DEFAULT_DIALECT search-default-dialect ✅ 支持

✅ 灵活版 & 包年版
❌ 免费版 & 固定版
EXTLOAD search-ext-load ✅ 支持

✅ 灵活版 & 包年版
❌ 免费版 & 固定版
FORK_GC_CLEAN_THRESHOLD search-fork-gc-clean-threshold ✅ 支持

✅ 灵活版 & 包年版
❌ 免费版 & 固定版
FORK_GC_RETRY_INTERVAL search-fork-gc-retry-interval ✅ 支持

✅ 灵活版 & 包年版
❌ 免费版 & 固定版
FORK_GC_RUN_INTERVAL search-fork-gc-run-interval ✅ 支持

✅ 灵活版 & 包年版
❌ 免费版 & 固定版
FORKGC_SLEEP_BEFORE_EXIT search-fork-gc-sleep-before-exit
FRISOINI search-friso-ini ✅ 支持

✅ 灵活版 & 包年版
❌ 免费版 & 固定版
GC_POLICY 没有匹配的 CONFIG 参数。 ✅ 支持

✅ 灵活版 & 包年版
❌ 免费版 & 固定版
GCSCANSIZE search-gc-scan-size ✅ 支持

✅ 灵活版 & 包年版
❌ 免费版 & 固定版
INDEX_CURSOR_LIMIT search-index-cursor-limit
INDEX_THREADS search-index-threads
MAXAGGREGATERESULTS search-max-aggregate-results ✅ 支持

✅ 灵活版 & 包年版
❌ 免费版 & 固定版
MAXDOCTABLESIZE search-max-doctablesize ✅ 支持

✅ 灵活版 & 包年版
❌ 免费版 & 固定版
MAXEXPANSIONS search-max-expansions
MAXPREFIXEXPANSIONS search-max-prefix-expansions ✅ 支持

✅ 灵活版 & 包年版
❌ 免费版 & 固定版
MAXSEARCHRESULTS search-max-search-results ✅ 支持

✅ 灵活版 & 包年版
❌ 免费版 & 固定版
MIN_OPERATION_WORKERS search-min-operation-workers
MIN_PHONETIC_TERM_LEN search-min-phonetic-term-len
MINPREFIX search-min-prefix ✅ 支持

✅ 灵活版 & 包年版
❌ 免费版 & 固定版
MINSTEMLEN search-min-stem-len ✅ 支持

✅ 灵活版 & 包年版
❌ 免费版 & 固定版
MULTI_TEXT_SLOP search-multi-text-slop
NO_MEM_POOLS search-no-mem-pools
NOGC search-no-gc ✅ 支持

✅ 灵活版 & 包年版
❌ 免费版 & 固定版
ON_TIMEOUT search-on-timeout ✅ 支持

✅ 灵活版 & 包年版
❌ 免费版 & 固定版
PARTIAL_INDEXED_DOCS search-partial-indexed-docs ✅ 支持

✅ 灵活版 & 包年版
❌ 免费版 & 固定版
RAW_DOCID_ENCODING search-raw-docid-encoding
SEARCH_THREADS search-threads
TIERED_HNSW_BUFFER_LIMIT search-tiered-hnsw-buffer-limit
TIMEOUT search-timeout ✅ 支持

✅ 灵活版 & 包年版
❌ 免费版 & 固定版
TOPOLOGY_VALIDATION_TIMEOUT search-topology-validation-timeout
UNION_ITERATOR_HEAP search-union-iterator-heap ✅ 支持

✅ 灵活版 & 包年版
❌ 免费版 & 固定版
UPGRADE_INDEX search-upgrade-index ✅ 支持

✅ 灵活版 & 包年版
❌ 免费版 & 固定版
VSS_MAX_RESIZE search-vss-max-resize
WORKERS_PRIORITY_BIAS_THRESHOLD search-workers-priority-bias-threshold
WORKERS search-workers
OSS_GLOBAL_PASSWORD 在 v8.0.0 中已弃用。替换为 masterauth 密码。 ✅ 支持

❌ 灵活版 & 包年版
❌ 免费版 & 固定版
MT_MODE 在 v8.0.0 中已弃用。请使用 search-workers。
PRIVILEGED_THREADS_NUM 在 v8.0.0 中已弃用。请使用 search-workers-priority-bias-threshold。
WORKER_THREADS 在 v8.0.0 中已弃用。请使用 search-min-operation-workers。
SAFEMODE 在 v1.6.0 中已弃用。这现在是默认设置。
FORK_GC_CLEAN_NUMERIC_EMPTY_NODES 在 v8.0.0 中已弃用。
注意
Redis Open Source 版本 < 8.0 的参数名称虽然已弃用,但在 Redis 8 中仍然受支持。

search-bg-index-sleep-gap

在执行后台索引时运行的迭代次数,在此之前会调用 usleep(1)(休眠 1 微秒),确保 Redis 可以处理其他命令。

类型:整数

有效范围:[1 .. 4294967295]

默认值:100

search-concurrent-write-mode

如果启用,写入查询的分词将并行执行。

类型:布尔值

默认值:FALSE

search-conn-per-shard

集群中每个分片的连接数。如果为 0,连接数将设置为 search-workers + 1。

类型:整数

有效范围:[0 .. 9,223,372,036,854,775,807]

默认值:0

search-cursor-max-idle

可以为 cursor api 设置的最大空闲时间(毫秒)。

类型:整数

有效范围:[0 .. 9,223,372,036,854,775,807]

默认值:300000

search-cursor-read-size

类型:整数

默认值:1000

search-cursor-reply-threshold

在对分片触发 _FT.CURSOR READ 之前累积的最大回复数量。

类型:整数

有效范围:[1 .. 9,223,372,036,854,775,807]

默认值:1

search-default-dialect

FT.CREATEFT.AGGREGATEFT.EXPLAINFT.EXPLAINCLIFT.SPELLCHECK 命令使用的默认 方言 (DIALECT)。更多信息请参阅查询方言

默认值:1

search-ext-load

如果存在,Redis 将尝试从指定的文件路径加载扩展动态库。有关详细信息,请参阅扩展

类型:字符串

默认值:未设置

search-fork-gc-clean-numeric-empty-nodes

清除数字树中的空节点。

类型:布尔值

默认值:TRUE

search-fork-gc-clean-threshold

当未清理文档的数量超过此阈值时,fork GC 才会开始清理,否则将跳过此次运行。

类型:整数

有效范围:[1 .. 9,223,372,036,854,775,807]

默认值:100

search-fork-gc-retry-interval

Redis 在发生故障时重试运行 fork GC 的间隔(秒)。此设置只能与 search-gc-policyFORK 设置结合使用。

类型:整数

有效范围:[1 .. 9,223,372,036,854,775,807]

默认值:5

search-fork-gc-run-interval

两次连续 fork GC 运行之间的间隔(秒)。此设置只能与 search-gc-policyFORK 设置结合使用。

类型:整数

有效范围:[1 .. 9,223,372,036,854,775,807]

默认值:30

search-fork-gc-sleep-before-exit

fork GC 在退出前休眠的秒数。除了测试时,此值应始终设置为 0。

类型:整数

有效范围:[1 .. 9,223,372,036,854,775,807]

默认值:0

search-friso-ini

如果存在,从指定路径加载自定义中文词典。有关详细信息,请参阅使用自定义词典

类型:字符串

默认值:未设置

GC_POLICY

垃圾回收策略。支持的两种策略是

  • FORK:使用分叉线程进行垃圾回收(v1.4.1 及更高版本)。这是自 v1.6.1 以来的默认 GC 策略,非常适合通用工作负载。
  • LEGACY:使用同步的进程内分叉。这非常适合读取密集型和追加密集型工作负载,更新/删除非常少。在 v2.6.0 中已弃用。

注意:当 GC_POLICY 设置为 FORK 时,可以与 search-fork-gc-run-intervalsearch-fork-gc-retry-interval 设置结合使用。

类型:字符串

有效值:FORKDEFAULT

默认值:FORK

search-gc-scan-size

用于清理索引的内部 GC 的批量大小。

类型:整数

有效范围:[1 .. 9,223,372,036,854,775,807]

Redis Open Source 默认值:100

Redis Software 默认值:-1(无限制)

Redis Cloud 默认值

  • 灵活版 & 包年版:-1(无限制)
  • 免费版 & 固定版:10000

search-index-cursor-limit

在 v2.10.8 中添加。

在任何给定时间,每个分片可以打开的最大游标数。用户可以通过 FT.AGGREGATE WITHCURSOR 打开游标。RQE 也会为长时间运行的查询内部打开游标。一旦达到 INDEX_CURSOR_LIMIT,任何进一步尝试打开游标的操作都将导致错误。

备注
  • 修改此参数时应谨慎。每个打开的游标都会导致额外的内存使用。
  • 在修改 INDEX_CURSOR_LIMIT 之前,应首先通过使用 FT.CURSOR DEL 和/或 MAXIDLE 来规范游标的使用。
  • 有关详细信息,请参阅游标 API

类型:整数

默认值:128

search-max-aggregate-results

如果使用 LIMITFT.AGGREGATE 命令返回的最大结果数。

类型:整数

有效范围:[1 .. 9,223,372,036,854,775,807]

Redis Open Source 默认值:-1(无限制)

Redis Software 默认值:-1(无限制)

Redis Cloud 默认值

  • 灵活版 & 包年版:-1(无限制)
  • 免费版 & 固定版:10000

search-max-doctablesize

用于存储文档的内部哈希表的最大大小。注意:此配置选项不限制可以存储的文档数量。它仅影响哈希表内部数组的最大大小。在索引包含少量文档且这些文档不断更新的情况下,减小此属性可以减少内存开销。

类型:整数

有效范围:[1 .. 18,446,744,073,709,551,615]

默认值:1000000

search-max-expansions

此参数是 search-max-prefix-expansions 的别名。

search-max-prefix-expansions

查询前缀允许的最大扩展数量。设置过高可能导致性能问题。如果达到 search-max-prefix-expansions,查询将继续处理首先获得的结果。此配置适用于所有词缀查询,包括前缀、后缀和中缀(包含)查询。

类型:整数

有效范围:[1 .. 9,223,372,036,854,775,807]

默认值:200

search-max-search-results

如果使用 LIMITFT.SEARCH 命令返回的最大结果数。将其设置为 -1 可移除限制。

类型:整数

有效范围:[1 .. 9,223,372,036,854,775,807]

Redis Open Source 默认值:1000000

Redis Software 默认值:1000000

Redis Cloud 默认值

  • 灵活版 & 包年版:1000000
  • 免费版 & 固定版:10000

search-min-operation-workers

服务器处于操作事件时,用于后台任务的工作线程数。

类型:整数

有效范围:[0 .. 8192]

默认值:4

search-min-phonetic-term-len

考虑进行语音匹配的最小术语长度。

类型:整数

有效范围:[1 .. 9,223,372,036,854,775,807]

默认值:3

search-min-prefix

前缀查询(例如,hel*)允许的最小字符数。将其设置为 1 会降低性能。

类型:整数

有效范围:[1 .. 9,223,372,036,854,775,807]

默认值:2

search-min-stem-len

词干提取的最小单词长度。将其设置低于 4 会降低性能。

类型:整数

有效范围:[2 .. 4,294,967,295]

Redis Open Source 默认值:4

Redis Software 和 Redis Cloud 默认值:2

search-multi-text-slop

设置用于增加多文本值数组槽之间位置偏移量的增量。这将允许您控制不同数组槽中短语的分离级别;与 FT.SEARCH 命令的 SLOP 参数相关。

类型:整数

有效范围:[0 .. 4,294,967,295]

默认值:100

search-no-mem-pools

设置 RQE 在没有内存池的情况下运行。

类型:布尔值

默认值:FALSE

search-no-gc

如果设置为 TRUE,则所有索引的垃圾回收都将被禁用。

类型:布尔值

默认值:FALSE

search-on-timeout

对于超过 search-timeout 设置的查询的响应策略可以是以下之一

  • RETURN:此策略将返回查询在超时之前累积的顶部结果。
  • FAIL:当查询超过超时值时将返回错误。

类型:字符串

有效值:RETURN, FAIL

默认值:RETURN

search-partial-indexed-docs

在 v2.0.0 中添加。

启用/禁用 Redis 命令过滤器。该过滤器优化哈希的部分更新,如果更改的字段不属于 schema,则可以避免重新索引哈希。

Redis 命令过滤器将在每个 Redis 命令执行时运行。尽管过滤器经过优化,但这会使所有命令的延迟略有增加。
此配置最适合与部分索引的文档一起使用,其中非索引字段经常更新。

类型:整数

有效值:0(假),1(真)

默认值:0

search-raw-docid-encoding

禁用 DocID 倒排索引的压缩以提升 CPU 性能。

类型:布尔值

默认值:FALSE

search-threads

设置协调器线程池中的搜索线程数。

类型:整数

search-tiered-hnsw-buffer-limit

用于设置向量分层 HNSW 索引的缓冲区限制阈值。如果 Redis 使用 WORKERS 进行索引,并且缓冲区中等待索引的向量数量超过此限制,则新向量将直接插入到 HNSW 中。

类型:整数

有效范围:[0 .. 9,223,372,036,854,775,807]

默认值:1024

search-timeout

搜索查询允许运行的最大时间(毫秒)。如果超出此时间,Redis 将返回截至目前累积的顶部结果,或者根据使用 search-on-timeout 设置的策略返回错误。可以通过将其设置为 0 来禁用超时。

备注
  • search-timeout 仅指查询时间。
  • 解析查询不计入 search-timeout
  • 如果在搜索过程中未达到 search-timeout,则加载文档内容或归约器等最终操作将继续。

类型:整数

取值范围:[1 .. 9,223,372,036,854,775,807]

Redis Open Source 默认值:500

Redis Software 默认值:500

Redis Cloud 默认值

  • 灵活版 & 包年版:500
  • 免费版 & 固定版:100

search-topology-validation-timeout

设置拓扑验证的超时时间(毫秒)。在此超时之后,即使拓扑未完全连接,任何待处理的请求都将得到处理。值为 0 表示没有超时。

类型:整数

有效范围:[1 .. 9,223,372,036,854,775,807]

默认值:30000

search-union-iterator-heap

联合中迭代器的最小数量,达到此数量时迭代器将切换到基于堆的实现。

类型:整数

有效范围:[1 .. 9,223,372,036,854,775,807]

默认值:20

search-upgrade-index

仅在加载 v1.x RDB 文件时相关。指定用于升级索引的参数。此配置设置是为升级 v1.x RQE 版本的索引而引入的特殊配置选项,这些索引也称为遗留索引。对于每个遗留索引,需要给出此配置选项,后跟索引名称和索引描述的所有有效选项(也称为后续哈希的 ON 参数),详情请参阅 FT.CREATE 命令页面。

类型:字符串

默认值:索引名称没有默认值,其他参数与 FT.CREATE 命令的默认值相同。

示例

search-upgrade-index idx PREFIX 1 tt LANGUAGE french LANGUAGE_FIELD MyLang SCORE 0.5 SCORE_FIELD MyScore
    PAYLOAD_FIELD MyPayload UPGRADE_INDEX idx1
备注
  • 如果 RDB 文件不包含配置中指定的遗留索引,将在日志文件中添加警告消息,并且加载将继续。
  • 如果 RDB 文件包含配置中未指定的遗留索引,加载将失败,并且服务器将无法启动。

search-vss-max-resize

在 v2.4.8 中添加。

向量索引的最大内存调整大小(字节)。此值将覆盖默认内存限制,如果您需要允许使用较大的 BLOCK_SIZE

类型:整数

有效范围:[0 .. 4,294,967,295]

默认值:0

search-workers-priority-bias-threshold

工作线程池在执行低优先级任务之前在任何给定时间执行的高优先级任务数量。在执行完此数量的高优先级任务后,工作线程池将交替执行高优先级和低优先级任务。

类型:整数

有效范围:[1 .. 9,223,372,036,854,775,807]

默认值:1

search-workers

用于查询处理和后台任务的工作线程数。

类型:整数

有效范围:[0 .. 8192]

默认值:0

在模块加载时设置配置参数(已弃用)

从 Redis 8 开始,这些方法已弃用。

在加载时设置配置参数可以通过在从命令行启动服务器时,在 --loadmodule 参数后附加参数,或者在 Redis 配置文件中的 loadmodule 指令后附加来实现。例如

redis.conf

loadmodule ./redisearch.so [OPT VAL]...

Redis CLI,使用 MODULE LOAD 命令

127.0.0.6379> MODULE LOAD redisearch.so [OPT VAL]...

从命令行

$ redis-server --loadmodule ./redisearch.so [OPT VAL]...

在运行时设置配置参数(对于支持的参数,已弃用)

从 Redis 8 开始,这些方法已弃用。

RQE 暴露了 FT.CONFIG 端点,允许在运行时设置和检索配置参数。

要在运行时(对于支持的参数)设置配置参数的值,只需运行

FT.CONFIG SET OPT1 VAL1

同样,您可以使用以下命令检索当前的配置参数值

FT.CONFIG GET OPT1
FT.CONFIG GET *

使用 FT.CONFIG SET 设置的值在服务器重启后不会持久化。

评价此页面
回到顶部 ↑