配置设置

Neo4j 配置设置是在 neo4j.conf 中设置的。有关如何使用配置设置的详细信息,请参阅 The neo4j.conf file

有关 2025-2026 系列中已更改、弃用或删除的配置设置列表,请参阅 Changes in Neo4j 2025-2026 series, Current deprecations, 和 Breaking changes in Neo4j 2025.01

要列出 Neo4j 服务器上所有可用的配置设置,请运行 SHOW SETTINGS 命令。

动态配置设置

动态设置可以在运行时更改,无需重启服务。

动态设置标记为 动态 (Dynamic)

运行时对配置的更改不会持久化。为避免重启 Neo4j 时丢失更改,请确保同时更新 neo4j.conf

在集群环境中,CALL dbms.setConfigValue 仅影响运行该命令的服务器,不会传播到其他成员。如果您想更改所有集群成员上的配置设置,则必须针对每个成员运行该过程并更新其 neo4j.conf 文件。

集群中的每个成员都有自己的 neo4j.conf 文件。建议数据库的设置在集群的所有成员之间保持一致。

有关如何更新动态配置设置的更多信息,请参阅 更新动态设置

配置设置组

在 Neo4j 中部署多数据集群时,您可以配置负载均衡框架。

在 Neo4j 中,负载均衡系统基于插件架构。主要内置插件是 server_policies,由以下属性设置

dbms.routing.load_balancing.plugin=server_policies

server_policies 插件根据预定义的路由策略确定哪些服务器有资格处理客户端请求。如果客户端未指定路由策略,系统默认为使用所有可用服务器。

您可以使用以下属性格式定义路由策略

dbms.routing.load_balancing.config.server_policies.<policy-name>=<policy-definition>

其中 <policy-name> 是路由策略的名称,<policy-definition> 指定服务器选择逻辑。

对于默认策略,保留 default 策略名称。其默认值为 all()

dbms.routing.load_balancing.config.server_policies.default=all()

有关更多详细信息,请参阅 集群 → 多数据中心路由

检查点设置

检查点是将所有待处理的页面更新从页面缓存刷新到存储文件的过程。此过程定期执行,用于在崩溃时恢复数据库。检查点设置控制检查点的频率,以及在每个检查点中写入磁盘的数据量。另请参阅 事务日志设置

db.checkpoint

表 1. db.checkpoint

描述

配置检查点何时发生的通用策略。可能的值为

有效值

[PERIODIC, CONTINUOUS, VOLUME, VOLUMETRIC] 之一。

默认值

PERIODIC

db.checkpoint.interval.time

表 2. db.checkpoint.interval.time

描述

配置检查点之间的时间间隔。数据库运行检查点的频率不会高于指定的时间间隔(除非由其他事件触发),但如果执行检查点花费的时间比配置的时间间隔长,则检查点频率可能会降低。检查点是事务日志中恢复开始的点。更长的检查点间隔通常意味着在发生崩溃时恢复需要更长的时间。另一方面,更长的检查点间隔也可以减少数据库对系统施加的 I/O 负载,因为每个检查点都意味着刷新并强制写入所有存储文件。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

15m

db.checkpoint.interval.tx

表 3. db.checkpoint.interval.tx

描述

配置检查点之间的事务间隔。数据库运行检查点的频率不会高于指定的时间间隔(除非由其他事件触发),但如果执行检查点花费的时间比配置的时间间隔长,则检查点频率可能会降低。检查点是事务日志中恢复开始的点。更长的检查点间隔通常意味着在发生崩溃时恢复需要更长的时间。另一方面,更长的检查点间隔也可以减少数据库对系统施加的 I/O 负载,因为每个检查点都意味着刷新并强制写入所有存储文件。默认值为 100000,即每 100000 个事务运行一次检查点。

有效值

最小为 1 的整数。

默认值

100000

db.checkpoint.interval.volume

表 4. db.checkpoint.interval.volume

描述

配置检查点之间事务日志的卷。数据库运行检查点的频率不会高于指定的时间间隔(除非由其他事件触发),但如果执行检查点花费的时间比配置的时间间隔长,则检查点频率可能会降低。检查点是事务日志中恢复开始的点。更长的检查点间隔通常意味着在发生崩溃时恢复需要更长的时间。另一方面,更长的检查点间隔也可以减少数据库对系统施加的 I/O 负载,因为每个检查点都意味着刷新并强制写入所有存储文件。

有效值

一个字节大小(有效乘数为 B, KiB, KB, K, kB, kb, k, MiB, MB, M, mB, mb, m, GiB, GB, G, gB, gb, g, TiB, TB, PiB, PB, EiB, EB),最小为 1.00KiB

默认值

250.00MiB

db.checkpoint.iops.limit

企业版 动态

表 5. db.checkpoint.iops.limit

描述

限制后台检查点进程每秒消耗的 IO 数。此设置是建议性的。它在 Neo4j 社区版中被忽略,并在企业版中尽力遵循。在这种情况下,IO 是 8 KiB 的(主要是顺序的)写入。以这种方式限制写入 IO 可以为 I/O 子系统留出更多带宽来处理随机读取 IO,这对于数据库无法完全容纳在内存中时查询的响应时间很重要。此设置的唯一缺点是较长的检查点时间可能会导致数据库或系统崩溃时恢复时间稍长。较小的数字意味着较低的 IO 压力,从而导致较长的检查点时间。设置为 -1 可禁用 IOPS 限制并完全移除限制。这允许检查点程序以硬件允许的最快速度刷新数据。移除或注释掉该设置将恢复为默认值 600

有效值

一个整数。

默认值

600

db.checkpoint.throughput.limit

表 6. db.checkpoint.throughput.limit

描述

限制后台检查点进程每秒的写入吞吐量。此设置是建议性的。它在 Neo4j 社区版中被忽略,并在企业版中尽力遵循。以这种方式限制写入 IO 可以为 I/O 子系统留出更多带宽来处理随机读取 IO,这对于数据库无法完全容纳在内存中时查询的响应时间很重要。此设置的唯一缺点是较长的检查点时间可能会导致数据库或系统崩溃时恢复时间稍长。较小的数字意味着较低的 IO 压力,从而导致较长的检查点时间。设置为 null 可禁用吞吐量限制并回退到 IOPS 限制。

有效值

一个字节大小(有效乘数为 B, KiB, KB, K, kB, kb, k, MiB, MB, M, mB, mb, m, GiB, GB, G, gB, gb, g, TiB, TB, PiB, PB, EiB, EB),最小为 8.00KiB。

默认值

云存储集成设置

云集成设置允许您指定自定义 Azure Blob 存储端点和主机机构,设置 Google Cloud Storage 存储桶的项目 ID,并定义 Amazon S3 中传输操作的目标吞吐量。

dbms.integrations.cloud_storage.azb.blob_endpoint_suffix

表 7. dbms.integrations.cloud_storage.azb.blob_endpoint_suffix

描述

Azure Blob 存储端点后缀。如果您不使用 Azure 公共云(例如,如果您使用 Azure 政府版),则需要更改此设置。

有效值

一个字符串。

默认值

blob.core.windows.net

dbms.integrations.cloud_storage.azb.authority_endpoint

表 8. dbms.integrations.cloud_storage.azb.authority_endpoint

描述

Azure 机构主机端点(仅某些身份验证方法需要,应以其完整形式指定 - 例如,https://login.microsoftonline.com)。

有效值

一个字符串。

默认值

dbms.integrations.cloud_storage.gs.project_id

表 9. dbms.integrations.cloud_storage.gs.project_id

描述

要连接的 Google 存储桶的项目 ID,回退到其 SDK 找到的值。

有效值

一个字符串。

默认值

dbms.integrations.cloud_storage.s3.target_throughput_gbps

表 10. dbms.integrations.cloud_storage.s3.target_throughput_gbps

描述

传输请求的目标吞吐量。值越高,与 S3 建立的连接就越多。建议将其设置为应用程序运行所在主机的最大网络带宽。默认值为 10.0,但在 EC2 实例上运行时,该值通常可以设置得更高(具体取决于 EC2 实例类型)。

有效值

一个 double 值。

默认值

10.0

集群设置

集群设置用于配置 Neo4j 集群的行为。有关更多信息,另请参阅 集群设置

db.cluster.catchup.pull_interval

表 11. db.cluster.catchup.pull_interval

描述

从服务器获取特定数据库的更新的间隔(来自该数据库的主服务器)。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

1s

db.cluster.raft.apply.buffer.max_bytes

表 12. db.cluster.raft.apply.buffer.max_bytes

描述

应用缓冲区中的最大字节数。此参数限制了应用缓冲区可以消耗的内存量。如果达到字节限制,即使未超过 max_entries,缓冲区大小也会受到限制。

有效值

一个字节大小(有效乘数为 B, KiB, KB, K, kB, kb, k, MiB, MB, M, mB, mb, m, GiB, GB, G, gB, gb, g, TiB, TB, PiB, PB, EiB, EB)。

默认值

1.00GiB

db.cluster.raft.apply.buffer.max_entries

表 13. db.cluster.raft.apply.buffer.max_entries

描述

Raft 日志条目预取缓冲区中的最大条目数。

有效值

一个整数。

默认值

1024

db.cluster.raft.in_queue.batch.max_bytes

表 14. db.cluster.raft.in_queue.batch.max_bytes

描述

由 RAFT 处理的最大批处理大小(字节)。

有效值

一个字节大小(有效乘数为 B, KiB, KB, K, kB, kb, k, MiB, MB, M, mB, mb, m, GiB, GB, G, gB, gb, g, TiB, TB, PiB, PB, EiB, EB)。

默认值

8.00MiB

db.cluster.raft.so_keepalive_enabled

表 15. db.cluster.raft.so_keepalive_enabled

描述

为所有 Raft TCP 通道设置 keepalive 套接字选项 (SO_KEEPALIVE)。

有效值

一个布尔值。

默认值

false

db.cluster.raft.in_queue.max_bytes

表 16. db.cluster.raft.in_queue.max_bytes

描述

RAFT 入队的最大字节数。

有效值

一个字节大小(有效乘数为 B, KiB, KB, K, kB, kb, k, MiB, MB, M, mB, mb, m, GiB, GB, G, gB, gb, g, TiB, TB, PiB, PB, EiB, EB)。

默认值

2.00GiB

db.cluster.raft.leader_transfer.priority_tag

表 17. db.cluster.raft.leader_transfer.priority_tag

描述

服务器标签的名称,其成员应被优先选为领导者。这并不能保证领导者始终是此标签的成员,但集群将在可能时尝试将领导权转移给此类成员。如果使用 db.cluster.raft.leader_transfer.priority_tag.<database> 指定了数据库,则指定的优先级标签将仅应用于该数据库。如果未指定数据库,则该标签将成为默认标签,并应用于所有未显式设置优先级标签的数据库。使用此设置将禁用领导权平衡。

有效值

标识服务器标签的字符串。

默认值

db.cluster.raft.log.prune_strategy

表 18. db.cluster.raft.log.prune_strategy

描述

RAFT 日志修剪策略,确定要修剪哪些日志。Neo4j 仅修剪直至最后一个已应用索引的日志条目,这保证了仅在其中的事务被安全地复制到本地事务日志并被大多数集群成员安全提交后,日志才会被标记为修剪。可能的值是字节大小或事务数(例如,200K txs)。

有效值

一个字符串。

默认值

1g 大小

db.cluster.raft.log_shipping.buffer.max_bytes

表 19. db.cluster.raft.log_shipping.buffer.max_bytes

描述

传输中缓存中的最大字节数。此参数限制了缓存可以消耗的内存量。如果达到字节限制,即使未超过 max_entries,缓存大小也会受到限制。

有效值

一个字节大小(有效乘数为 B, KiB, KB, K, kB, kb, k, MiB, MB, M, mB, mb, m, GiB, GB, G, gB, gb, g, TiB, TB, PiB, PB, EiB, EB)。

默认值

1.00GiB

db.cluster.raft.log_shipping.buffer.max_entries

表 20. db.cluster.raft.log_shipping.buffer.max_entries

描述

传输中缓存中的最大条目数。增加大小需要更多内存,但可能会在高负载情况下提高性能。

有效值

一个整数。

默认值

1024

dbms.cluster.network.client_inactivity_timeout

表 21. dbms.cluster.network.client_inactivity_timeout

描述

如果指定的持续时间过去而没有网络活动,则网络请求超时。客户端从服务器接收到的每条消息都会延长超时持续时间。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

10m

dbms.cluster.endpoints

表 22. dbms.cluster.endpoints

描述

服务器为了发现其他集群成员而应联系的端点的逗号分隔列表。所有托管 system 数据库主服务器的集群成员必须在此列表中指定。然而,通常会将所有集群成员(包括当前服务器)都包含在此列表中。

有效值

逗号分隔的列表,其中每个元素都是套接字地址,格式为 hostname:port, hostname, 或 :port

默认值

dbms.cluster.discovery.resolver_type

表 23. dbms.cluster.discovery.resolver_type

描述

配置发现服务用于确定谁应该成为集群一部分的解析器类型。有效值为 LIST, SRV, DNS, 和 K8S

LIST

一种静态配置,其中 dbms.cluster.endpoints 必须包含集群成员的地址列表。

SRVDNS

一种动态配置,其中 dbms.cluster.endpoints 必须指向包含集群成员地址的 DNS 条目。

K8S

至少必须设置 dbms.kubernetes.discovery.service_port_name。集群成员的地址是从 Kubernetes 动态查询的。

有效值

一个字符串。

默认值

LIST

dbms.cluster.minimum_initial_system_primaries_count

表 24. dbms.cluster.minimum_initial_system_primaries_count

描述

最初形成集群 DBMS 所需的最小机器数。当至少这么多成员发现彼此、绑定在一起并引导了高可用系统数据库时,集群被视为已形成。因此,集群的初始机器中至少有这么多必须将 server.cluster.system_database_mode 设置为 PRIMARY
注意:如果 dbms.cluster.discovery.resolver_type 设置为 LISTdbms.cluster.endpoints 为空,则假定用户正在部署单机 DBMS,此设置的值将被忽略。

有效值

最小为 1 的整数。

默认值

3

dbms.cluster.network.connect_timeout

表 25. dbms.cluster.network.connect_timeout

描述

等待建立网络连接的最长等待时间。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

30s

dbms.cluster.network.handshake_timeout

表 26. dbms.cluster.network.handshake_timeout

描述

协议协商握手的超时时间。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

20s

dbms.cluster.network.max_chunk_size

表 27. dbms.cluster.network.max_chunk_size

描述

集群机制允许在网络上传输的最大块大小。

有效值

范围在 409610485760 之间的整数。

默认值

32768

dbms.cluster.network.supported_compression_algos

表 28. dbms.cluster.network.supported_compression_algos

描述

此服务器将在协商中允许的网络压缩算法(逗号分隔列表)。
对于传入连接,算法按优先级降序列出。空列表表示不压缩。
对于传出连接,这仅指定允许的算法集,远程对等方的首选项将用于做出决定。
允许的值:[Snappy, Snappy_validating, LZ4 在 2026.01 中弃用, LZ4_high_compression 在 2026.01 中弃用, LZ_validating 在 2026.01 中弃用, LZ4_high_compression_validating 在 2026.01 中弃用]。

有效值

逗号分隔的列表,其中每个元素都是一个字符串。

默认值

dbms.cluster.raft.async_channel_acquisition_enabled

表 29. dbms.cluster.raft.async_channel_acquisition_enabled

描述

启用 Raft 发送方通道的异步获取。如果设置为 false,领导者在向追随者发送条目之前将等待与追随者的连接。如果一个或多个成员建立连接缓慢,这可能会导致复制延迟。

有效值

一个布尔值。

默认值

true

dbms.cluster.raft.binding_timeout

表 30. dbms.cluster.raft.binding_timeout

描述

Neo4j 服务器上的数据库加入集群或与至少可用法定成员数形成新集群所允许的时间。成员由系统数据库的 dbms.cluster.endpoints 提供,对于标准数据库由拓扑图提供。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

1d

dbms.cluster.raft.client.max_channels

表 31. dbms.cluster.raft.client.max_channels

描述

两个节点之间用于操作 raft 协议的最大 TCP 通道数。每个数据库被分配一个通道,但单个通道可以被多个数据库使用。

有效值

一个整数。

默认值

8

dbms.cluster.raft.election_failure_detection_window

表 32. dbms.cluster.raft.election_failure_detection_window

描述

领导者选举发生的速率。注意,由于选举冲突,可能需要多次尝试才能找到领导者。该窗口应明显大于典型的通信延迟,以使冲突不太可能发生。

有效值

一个持续时间范围 <min-max>(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

3s-6s

dbms.cluster.raft.leader_failure_detection_window

表 33. dbms.cluster.raft.leader_failure_detection_window

描述

检测到领导者丢失并在其中进行第一次重新选举尝试的时间窗口。该窗口应明显大于典型的通信延迟,以使冲突不太可能发生。

有效值

一个持续时间范围 <min-max>(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

20s-23s

dbms.cluster.raft.leader_transfer.balancing_strategy

表 34. dbms.cluster.raft.leader_transfer.balancing_strategy

描述

在集群中转移数据库领导权时使用的策略。请注意,如果为给定的数据库指定了 leader_transfer.priority_tag,则该设置的值将被该数据库忽略。可以使用以下值

  • equal_balancing 自动确保每个主服务器持有相等数量的数据库的领导角色。

  • no_balancing 防止领导角色的任何自动平衡。

有效值

[NO_BALANCING, EQUAL_BALANCING] 之一。

默认值

EQUAL_BALANCING

dbms.cluster.raft.log.pruning_frequency

表 35. dbms.cluster.raft.log.pruning_frequency

描述

RAFT 日志修剪频率。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

10m

dbms.cluster.raft.log.reader_pool_size

表 36. dbms.cluster.raft.log.reader_pool_size

描述

RAFT 日志读取器池大小。

有效值

一个整数。

默认值

8

dbms.cluster.raft.log.rotation_size

表 37. dbms.cluster.raft.log.rotation_size

描述

RAFT 日志轮换大小。当日志达到此大小时,它将被轮换。

有效值

一个字节大小(有效乘数为 B, KiB, KB, K, kB, kb, k, MiB, MB, M, mB, mb, m, GiB, GB, G, gB, gb, g, TiB, TB, PiB, PB, EiB, EB),最小为 1.00KiB

默认值

250.00MiB

dbms.cluster.raft.membership.join_max_lag

表 38. dbms.cluster.raft.membership.join_max_lag

描述

新追随者加入 Raft 组所接受的最大滞后量。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

10s

dbms.cluster.raft.membership.join_timeout

表 39. dbms.cluster.raft.membership.join_timeout

描述

新成员赶上的超时时间。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

10m

dbms.cluster.store_copy.max_retry_time_per_request

表 40. dbms.cluster.store_copy.max_retry_time_per_request

描述

存储复制期间每个请求的最大重试时间。常规存储文件和索引在存储复制期间在单独的请求中下载。这配置了失败请求允许重新发送的最长时间。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

20m

initial.dbms.automatically_enable_free_servers

表 41. initial.dbms.automatically_enable_free_servers

描述

自动启用处于 FREE 状态的服务器 - 不仅在初始 DBMS 启动期间,而且在新服务器加入集群时也是如此。

有效值

一个布尔值。

默认值

false

initial.dbms.default_primaries_count

表 42. initial.dbms.default_primaries_count

描述

标准数据库的初始默认主服务器数量。在第一次 DBMS 启动时初始化。如果用户未在 CREATE DATABASE 中指定主服务器数量,则除非被 dbms.setDefaultAllocationNumbers 过程覆盖,否则将使用此值。

有效值

最小为 1 且最大为 11 的整数。

默认值

1

initial.dbms.default_secondaries_count

表 43. initial.dbms.default_secondaries_count

描述

标准数据库的初始默认追随者数量。在第一次 DBMS 启动时初始化。如果用户未在 CREATE DATABASE 中指定追随者数量,则除非被 dbms.setDefaultAllocationNumbers 过程覆盖,否则将使用此值。

有效值

最小为 0 且最大为 20 的整数。

默认值

0

initial.dbms.default_property_shard_replica_count

表 44. initial.dbms.default_property_shard_replica_count

描述

属性分片的初始默认副本数。在第一次 DBMS 启动时初始化。如果用户未在 CREATE DATABASE 中指定属性分片副本数,则除非被 dbms.setDefaultAllocationNumbers 过程覆盖,否则将使用此值。

有效值

最小为 1 且最大为 20 的整数。

默认值

1

initial.server.allowed_databases

表 45. initial.server.allowed_databases

描述

此服务器上允许的数据库名称列表;所有其他名称均被拒绝。空表示允许所有数据库。此配置在第一次 DBMS 启动时和/或启用新添加的服务器时进行初始化。该设置用作 ENABLE SERVER 命令的默认输入;执行命令时可以覆盖。与 server.initial_denied_databases 互斥。

有效值

在 2025.12 中更改 一个逗号分隔的集合,其中每个元素都是一个有效的数据库名称模式,仅包含字母字符、数字、点、问号、星号和连字符,长度在 1 到 63 个字符之间。

默认值

initial.server.denied_databases

表 46. initial.server.denied_databases

描述

此服务器上不允许的数据库名称列表。空表示不拒绝任何内容。此配置在第一次 DBMS 启动时和/或启用新添加的服务器时进行初始化。该设置用作 ENABLE SERVER 命令的默认输入;执行命令时可以覆盖。与 server.initial_allowed_databases 互斥。

有效值

在 2025.12 中更改 一个逗号分隔的集合,其中每个元素都是一个有效的数据库名称模式,仅包含字母字符、数字、点、问号、星号和连字符,长度在 1 到 63 个字符之间。

默认值

在 Neo4j 2025.12 中,更新了 initial.server.allowed_databasesinitial.server.denied_databases 设置的有效值。从 2025.12 开始,支持数据库名称模式(通配符),且最小字符数从 3 减少到 1

initial.server.mode_constraint

表 47. initial.server.mode_constraint

描述

确定服务器是被配置为仅托管主数据库、仅托管追随者数据库,还是两者都托管。在第一次 DBMS 启动时和/或启用新添加的服务器时进行初始化。该设置用作 ENABLE SERVER 命令的默认输入;执行命令时可以覆盖。

有效值

[PRIMARY, SECONDARY, NONE] 之一。

默认值

NONE

initial.server.tags

表 48. initial.server.tags

描述

数据库分配以及配置负载均衡和复制策略时使用的服务器标签名称列表。在第一次 DBMS 启动时和/或启用新添加的服务器时进行初始化。该设置用作 ENABLE SERVER 命令的默认输入;执行命令时可以覆盖。

有效值

逗号分隔的列表,其中每个元素都是标识服务器标签的字符串,且不包含重复项。

默认值

server.cluster.advertised_address

表 49. server.cluster.advertised_address

描述

事务传输服务器的已通告主机名/IP 地址和端口。

有效值

套接字地址,格式为 hostname:port, hostname, 或 :port,即一个可访问的地址。如果缺失,则从 server.default_advertised_address 获取。

默认值

:6000

server.cluster.catchup.connect_randomly_to_server_tags

表 50. server.cluster.catchup.connect_randomly_to_server_tags

描述

由 connect-randomly-to-server-with-tag 选择策略使用的逗号分隔标签列表。当策略列表 (server.cluster.catchup.upstream_strategy) 包含值 connect-randomly-to-server-with-tag 时,使用 connect-randomly-to-server-with-tag 策略。

有效值

逗号分隔的列表,其中每个元素都是标识服务器标签的字符串。

默认值

server.cluster.catchup.upstream_strategy

表 51. server.cluster.catchup.upstream_strategy

描述

追随者用于选择从其拉取事务更新的上游服务器的降序策略列表。如果没有任何有效策略或列表为空,则默认策略为 typically-connect-to-random-secondary

有效值

逗号分隔的列表,其中每个元素都是一个字符串。

默认值

server.cluster.catchup.user_defined_upstream_strategy

表 52. server.cluster.catchup.user_defined_upstream_strategy

描述

用户定义的上游选择策略的配置。当策略列表 (server.cluster.catchup.upstream_strategy) 包含值 user_defined 时,使用用户定义策略。

有效值

一个字符串。

默认值

server.cluster.listen_address

表 53. server.cluster.listen_address

描述

事务传输服务器监听的网络接口和端口。请注意,也可以针对此端口运行备份客户端,因此始终通过防火墙限制对其的访问,并配置 SSL 策略。

有效值

套接字地址,格式为 hostname:port, hostname, 或 :port。如果缺失,则从 server.default_listen_address 获取。

默认值

:6000

server.cluster.network.native_transport_enabled

表 54. server.cluster.network.native_transport_enabled

描述

如果可用,请使用原生传输。Linux 使用 Epoll,MacOS/BSD 使用 Kqueue。如果此设置设置为 false,或者原生传输不可用,则将使用 Nio 传输。

有效值

一个布尔值。

默认值

true

server.cluster.raft.advertised_address

表 55. server.cluster.raft.advertised_address

描述

RAFT 服务器的已通告主机名/IP 地址和端口。

有效值

套接字地址,格式为 hostname:port, hostname, 或 :port,即一个可访问的地址。如果缺失,则从 server.default_advertised_address 获取。

默认值

:7000

server.cluster.raft.listen_address

表 56. server.cluster.raft.listen_address

描述

RAFT 服务器监听的网络接口和端口。

有效值

套接字地址,格式为 hostname:port, hostname, 或 :port。如果缺失,则从 server.default_listen_address 获取。

默认值

:7000

server.cluster.system_database_mode

表 57. server.cluster.system_database_mode

描述

用户必须在每台服务器上为系统数据库手动指定模式。

有效值

[PRIMARY, SECONDARY] 之一。

默认值

PRIMARY

连接设置

连接设置控制服务器之间以及服务器与客户端之间的通信。Neo4j 通过连接器为 Bolt、HTTP 和 HTTPS 协议提供支持。有关连接器的更多信息,请参阅 配置网络连接器

在配置 HTTPS 或 Bolt 时,另请参阅 安全设置SSL 框架,了解有关如何使用 SSL 证书的详细信息。

server.bolt.advertised_address

表 58. server.bolt.advertised_address

描述

此连接器的已通告地址。

有效值

套接字地址,格式为 hostname:port, hostname, 或 :port,即一个可访问的地址。如果缺失,则从 server.default_advertised_address 获取。

默认值

:7687

server.bolt.connection_keep_alive

表 59. server.bolt.connection_keep_alive

描述

在等待来自活动进行中查询的响应的连接上发送 NOOP 之前的最长等待时间。最小值为 1 毫秒。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s),最小为 1ms

默认值

1m

server.bolt.connection_keep_alive_for_requests

表 60. server.bolt.connection_keep_alive_for_requests

描述

要启用 keep-alive 消息的消息类型,可以是 ALL, STREAMING, 或 OFF

有效值

[ALL, STREAMING, OFF] 之一。

默认值

ALL

server.bolt.connection_keep_alive_probes

表 61. server.bolt.connection_keep_alive_probes

描述

在连接被视为陈旧之前允许遗漏的探测总数。最小值为 1。

有效值

最小为 1 的整数。

默认值

2

server.bolt.connection_keep_alive_streaming_scheduling_interval

表 62. server.bolt.connection_keep_alive_streaming_scheduling_interval

描述

所有带有活动查询的连接上每次预定 keep-alive 检查之间的时间间隔。零持续时间将关闭 keep-alive 服务。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s),最小为 0s

默认值

1m

server.bolt.enabled

表 63. server.bolt.enabled

描述

启用 Bolt 连接器。

有效值

一个布尔值。

默认值

true

server.bolt.listen_address

表 64. server.bolt.listen_address

描述

连接器应绑定的地址。

有效值

套接字地址,格式为 hostname:port, hostname, 或 :port。如果缺失,则从 server.default_listen_address 获取。

默认值

:7687

server.bolt.additional_listen_addresses

表 65. server.bolt.additional_listen_addresses

描述

连接器应绑定的其他地址。

有效值

逗号分隔的集合,其中每个元素都是套接字地址,格式为 hostname:port, hostname, 或 :port

默认值

server.bolt.ocsp_stapling_enabled

表 66. server.bolt.ocsp_stapling_enabled

描述

为 bolt 和 http 连接器启用服务器 OCSP 装订。

有效值

一个布尔值。

默认值

false

server.bolt.telemetry.enabled

表 67. server.bolt.telemetry.enabled

描述

启用驱动程序遥测收集。

有效值

一个布尔值。

默认值

false

server.bolt.enable_network_error_accounting

表 68. server.bolt.enable_network_error_accounting

描述

启用在 Bolt 堆栈内基于账户的良性错误报告。启用后,仅当此类事件以异常频率发生时才会报告良性错误。禁用后,将报告所有良性网络错误。

有效值

一个布尔值。

默认值

true

server.bolt.network_abort_clear_window_duration

表 69. server.bolt.network_abort_clear_window_duration

描述

在错误被清除之前,网络相关连接中止需要保持在合理水平的持续时间。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, h 和 d;默认单位为 s),最小为 1s

默认值

10m

server.bolt.network_abort_warn_threshold

表 70. server.bolt.network_abort_warn_threshold

描述

在发出日志消息之前,在指定时间窗口内允许的最大网络相关连接中止次数。零值将恢复为遗留警告行为。

有效值

最小为 0 的长整数。

默认值

2

server.bolt.network_abort_warn_window_duration

表 71. server.bolt.network_abort_warn_window_duration

描述

采样网络相关连接中止的时间窗口的持续时间。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, h 和 d;默认单位为 s),最小为 1s

默认值

10m

server.bolt.thread_pool_keep_alive

表 72. server.bolt.thread_pool_keep_alive

描述

绑定到此连接器的线程池中的空闲线程等待新任务的最长时间。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

5m

server.bolt.thread_pool_max_size

表 73. server.bolt.thread_pool_max_size

描述

绑定到此连接器的线程池中允许的最大线程数。

有效值

一个整数。

默认值

400

server.bolt.thread_pool_min_size

表 74. server.bolt.thread_pool_min_size

描述

绑定到此连接器的线程池中要保持的线程数(包括空闲线程)。

有效值

一个整数。

默认值

5

server.bolt.thread_starvation_clear_window_duration

表 75. server.bolt.thread_starvation_clear_window_duration

描述

在错误被清除之前,未调度请求需要保持在合理水平的持续时间。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, h 和 d;默认单位为 s),最小为 1s

默认值

10m

server.bolt.thread_starvation_warn_threshold

表 76. server.bolt.thread_starvation_warn_threshold

描述

在发出日志消息之前,在指定时间窗口内线程饥饿事件期间允许的最大未调度请求数。

有效值

最小为 0 的长整数。

默认值

2

server.bolt.thread_starvation_warn_window_duration

表 77. server.bolt.thread_starvation_warn_window_duration

描述

采样未调度请求的时间窗口的持续时间。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, h 和 d;默认单位为 s),最小为 1s

默认值

10m

server.bolt.tls_level

表 78. server.bolt.tls_level

描述

用于保护与此连接器的通信的加密级别。

有效值

[REQUIRED, OPTIONAL, DISABLED] 之一。

默认值

DISABLED

server.bolt.traffic_accounting_check_period

表 79. server.bolt.traffic_accounting_check_period

描述

当前流量使用样本之间花费的时间量。较小的值会导致更准确的报告,同时会带来更高的性能损失。零值禁用流量核算。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, h 和 d;默认单位为 s),为 0s 或最小为 1m

默认值

5m

server.bolt.traffic_accounting_clear_duration

表 80. server.bolt.traffic_accounting_clear_duration

描述

花费在配置的流量阈值以下以清除流量警告的时间。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, h 和 d;默认单位为 s),最小为 1m

默认值

10m

server.bolt.traffic_accounting_incoming_threshold_mbps

表 81. server.bolt.traffic_accounting_incoming_threshold_mbps

描述

发出警告之前,在配置的核算检查窗口内允许的最大传入流量(Mbps)。

有效值

最小为 1 的长整数。

默认值

950

server.bolt.traffic_accounting_outgoing_threshold_mbps

表 82. server.bolt.traffic_accounting_outgoing_threshold_mbps

描述

发出警告之前,在配置的核算检查窗口内允许的最大传出流量(Mbps)。

有效值

最小为 1 的长整数。

默认值

950

server.bolt.unix_socket_auth

表 83. server.bolt.unix_socket_auth

描述

通过 Bolt Unix 域套接字连接器启用或禁用身份验证。如果禁用,只要已连接的客户端能够访问 Unix 域套接字文件,它们就会获得所有权限。

有效值

一个布尔值。

默认值

true

server.bolt.unix_socket_delete

表 84. server.bolt.unix_socket_delete

描述

是否删除用于 Unix 域套接字接口的现有文件。这改善了先前的硬关机无法删除文件的情况的处理。

有效值

一个布尔值。

默认值

false

server.bolt.unix_socket_enabled

表 85. server.bolt.unix_socket_enabled

描述

启用或禁用 Bolt Unix 域套接字连接器。通过此连接器提交的请求将被放置在专用线程池中,该线程池与所有其他 Bolt 连接隔离。

有效值

一个布尔值。

默认值

false

server.bolt.unix_socket_path

表 86. server.bolt.unix_socket_path

描述

用于 Unix 域套接字接口的文件的绝对路径。必须指定此文件,它将在运行时创建,并在关机时删除。

有效值

一个路径。

默认值

server.bolt.unix_socket_permission_mask

表 87. server.bolt.unix_socket_permission_mask

描述

设置应用于 Unix 域套接字文件的默认权限掩码。此掩码应设置得尽可能严格(特别是在此连接器上禁用身份验证时)。但请注意,除 Linux 外,其他 Posix 系统可能不遵循此权限。

有效值

一组文件权限。

默认值

rwx--x--x

server.bolt.unix_socket_thread_pool_keep_alive

表 88. server.bolt.unix_socket_thread_pool_keep_alive

描述

绑定到 Unix 域套接字连接器的线程池中的空闲线程等待新任务的最长时间。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, h 和 d)。

默认值

5m

server.bolt.unix_socket_thread_pool_max_size

表 89. server.bolt.unix_socket_thread_pool_max_size

描述

绑定到 Unix 域套接字连接器的线程池中允许的最大线程数。

有效值

最小为 1 的整数。

默认值

20

server.bolt.unix_socket_thread_pool_min_size

表 90. server.bolt.unix_socket_thread_pool_min_size

描述

绑定到 Unix 域套接字连接器的线程池中要保持的线程数(包括空闲线程)。

有效值

最小为 0 的整数。

默认值

0

server.bolt.unix_socket_use_dedicated_thread_pool

表 91. server.bolt.unix_socket_use_dedicated_thread_pool

描述

是否分配用于 Unix 域套接字接口的专用线程池。这允许将 Unix 域套接字连接器用作服务器容量过大时的紧急访问连接器。

有效值

一个布尔值。

默认值

true

server.http.advertised_address

表 92. server.http.advertised_address

描述

此连接器的已通告地址。

有效值

套接字地址,格式为 hostname:port, hostname, 或 :port,即一个可访问的地址。如果缺失,则从 server.default_advertised_address 获取。

默认值

:7474

server.http.enabled

表 93. server.http.enabled

描述

启用 HTTP 连接器。

有效值

一个布尔值。

默认值

true

server.http.listen_address

表 94. server.http.listen_address

描述

连接器应绑定的地址。

有效值

套接字地址,格式为 hostname:port, hostname, 或 :port。如果缺失,则从 server.default_listen_address 获取。

默认值

:7474

server.http.x_forward.enabled

表 95. server.http.x_forward.enabled

描述

启用 X-Forwarded-Host 和 X-Forwarded-Proto 头文件的处理。仅在 Neo4j 位于可信反向代理或负载均衡器后面时才启用此功能。禁用时,出于安全原因,X-Forward 头文件将被忽略。

有效值

一个布尔值。

默认值

true

server.http.x_forward.allow_hosts

表 96. server.http.x_forward.allow_hosts

描述

可以出现在 X-Forwarded-Host 头文件中的允许主机名列表。这可以防止主机头注入攻击。保持为空以接受任何主机名(不建议用于生产环境)。

有效值

逗号分隔的列表,其中每个元素都是一个字符串。

默认值

server.http.x_forward.allow_proxies

表 97. server.http.x_forward.allow_proxies

描述

允许设置 X-Forward 头文件的受信任代理 IP 地址列表。仅来自这些 IP 的请求才会处理其 X-Forward 头文件。保持为空以接受来自任何来源的 X-Forward 头文件(不建议)。

有效值

逗号分隔的列表,其中每个元素都是一个字符串。

默认值

server.http.x_forward.private_ips_enabled

表 98. server.http.x_forward.private_ips_enabled

描述

允许 X-Forwarded-Host 头文件中的私有 IP 地址 (RFC 1918)。设置为 false 可防止内部网络侦察攻击。

有效值

一个布尔值。

默认值

false

server.http_enabled_modules

表 99. server.http_enabled_modules

描述

定义加载到 Neo4j Web 服务器中的模块集。企业管理端点仅在企业版中可用。

有效值

逗号分隔的集合,其中每个元素都是 [TRANSACTIONAL_ENDPOINTS, UNMANAGED_EXTENSIONS, BROWSER, ENTERPRISE_MANAGEMENT_ENDPOINTS, QUERY_API_ENDPOINTS] 之一。

默认值

TRANSACTIONAL_ENDPOINTS,UNMANAGED_EXTENSIONS,BROWSER,ENTERPRISE_MANAGEMENT_ENDPOINTS,QUERY_API_ENDPOINTS

server.http_enabled_transports

表 100. server.http_enabled_transports

描述

定义 HTTP 服务器上可用的传输集。

有效值

逗号分隔的集合,其中每个元素都是 [HTTP1_1, HTTP2] 之一。

默认值

HTTP1_1,HTTP2

server.https.advertised_address

表 101. server.https.advertised_address

描述

此连接器的已通告地址。

有效值

套接字地址,格式为 hostname:port, hostname, 或 :port,即一个可访问的地址。如果缺失,则从 server.default_advertised_address 获取。

默认值

:7473

server.https.enabled

表 102. server.https.enabled

描述

启用 HTTPS 连接器。

有效值

一个布尔值。

默认值

false

server.https.listen_address

表 103. server.https.listen_address

描述

连接器应绑定的地址。

有效值

套接字地址,格式为 hostname:port, hostname, 或 :port。如果缺失,则从 server.default_listen_address 获取。

默认值

:7473

server.default_advertised_address

表 104. server.default_advertised_address

描述

服务器用于通告自身的默认主机名或 IP 地址。

有效值

格式为 主机名:端口主机名:端口 的套接字地址,且未指定端口,是一个可访问的地址。

默认值

localhost

server.default_listen_address

表 105. server.default_listen_address

描述

用于侦听传入连接的默认网络接口。若要在所有接口上侦听连接,请使用“0.0.0.0”。

有效值

格式为 主机名:端口主机名:端口 且未指定端口的套接字地址。

默认值

localhost

server.routing.advertised_address

表 106. server.routing.advertised_address

描述

集群内路由连接器的通告地址。

有效值

套接字地址,格式为 hostname:port, hostname, 或 :port,即一个可访问的地址。如果缺失,则从 server.default_advertised_address 获取。

默认值

:7688

server.routing.listen_address

表 107. server.routing.listen_address

描述

路由连接器应绑定的地址。

有效值

套接字地址,格式为 hostname:port, hostname, 或 :port。如果缺失,则从 server.default_listen_address 获取。

默认值

:7688

dbms.routing.client_side.enforce_for_domains

表 108. dbms.routing.client_side.enforce_for_domains

描述

对于这些域的 neo4j:// 协议连接,始终使用客户端路由(忽略默认路由器)。这是一个以逗号分隔的域列表。支持通配符 (*)。

有效值

以逗号分隔的集合,其中每个元素都是一个字符串。

默认值

dbms.routing.default_router

表 109. dbms.routing.default_router

描述

neo4j:// 协议连接的路由策略。默认为 CLIENT,使用客户端路由,并将服务器端路由作为备选(如果已启用)。当设置为 SERVER 时,客户端路由将被短路,请求依赖于服务器端路由,该路由必须通过 dbms.routing.enabled=true 启用才能正常运行。可被 dbms.routing.client_side.enforce_for_domains 覆盖。

有效值

[SERVER, CLIENT] 中的一个。

默认值

CLIENT

dbms.routing.driver.connection.connect_timeout

表 110. dbms.routing.driver.connection.connect_timeout

描述

套接字连接超时。超时值为零将被视为无限超时,并受操作系统层配置的超时限制。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

5s

dbms.routing.driver.connection.max_lifetime

表 111. dbms.routing.driver.connection.max_lifetime

描述

超过此阈值的连接池连接将被关闭并从池中移除。将此选项设置为较低的值会导致频繁的连接流失,并可能导致性能下降。建议将最大生命周期设置为略小于网络设备(负载均衡器、代理、防火墙等也可能限制最大连接生命周期)中配置的值。零值和负值表示不检查生命周期。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

1h

dbms.routing.driver.connection.pool.acquisition_timeout

表 112. dbms.routing.driver.connection.pool.acquisition_timeout

描述

尝试从连接池获取连接所花费的最大时间。仅当所有现有连接均被占用且无法创建新连接(因为已达到最大连接池大小)时,此超时才会生效。如果在配置的时间内无法获取连接,则会引发错误。允许使用负值,这意味着无限的获取超时。允许使用 0 值,表示没有超时,当连接不可用时立即失败。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

1m

dbms.routing.driver.connection.pool.idle_test

表 113. dbms.routing.driver.connection.pool.idle_test

描述

在池中空闲时间超过此超时的连接,在再次使用之前将被测试以确保它们仍然存活。如果此选项的值过低,获取连接将需要额外的网络调用,从而导致性能下降。如果此选项的值过高,活动的连接可能不再可用,从而导致错误。因此,此参数平衡了遇到连接问题的可能性和性能。通常,不需要调整此参数。值 0 表示始终测试连接的有效性。默认情况下不进行连接存活性检查。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

dbms.routing.driver.connection.pool.max_size

表 114. dbms.routing.driver.connection.pool.max_size

描述

连接池管理的最大连接总数。该限制适用于主机和用户的组合。允许使用负值,表示无限的连接池。不允许使用 0 值。默认为 -1(无限)。

有效值

一个整数。

默认值

-1

dbms.routing.driver.logging.level

表 115. dbms.routing.driver.logging.level

描述

设置驱动程序内部日志记录的级别。

有效值

[DEBUG, INFO, WARN, ERROR, NONE] 中的一个。

默认值

INFO

dbms.routing.enabled

表 116. dbms.routing.enabled

描述

在集群中使用额外的 bolt 连接器启用服务器端路由。配置后,如果请求无法由第一个成员满足(例如非领导者节点接收到写请求),则允许将请求从一个集群成员转发到另一个成员。

有效值

一个布尔值。

默认值

true

dbms.routing.load_balancing.plugin

表 117. dbms.routing.load_balancing.plugin

描述

每次生成路由表时改变条目的顺序。这意味着不同的客户端应该选择一系列服务器作为其首选联系点,如果存在替代方案,则减少所有客户端联系同一台服务器的机会。这使得服务器之间的负载更加均匀。

有效值

一个字符串。

默认值

server_policies

dbms.routing.load_balancing.shuffle_enabled

表 118. dbms.routing.load_balancing.shuffle_enabled

描述

每次生成路由表时改变条目的顺序。这意味着不同的客户端应该选择一系列服务器作为其首选联系点,如果存在替代方案,则减少所有客户端联系同一台服务器的机会。这使得服务器之间的负载更加均匀。

有效值

一个布尔值。

默认值

true

dbms.routing.reads_on_primaries_enabled

表 119. dbms.routing.reads_on_primaries_enabled

描述

配置 dbms.routing.getRoutingTable() 过程是否应将非写入者主节点包括为读取端点,还是仅返回辅助节点。
注意:如果给定数据库没有辅助节点,则无论此设置的值如何,主节点都将作为读取端点返回。默认为 true,以便非写入者主节点可在典型的异构设置中用于只读查询。

有效值

一个布尔值。

默认值

true

dbms.routing.reads_on_writers_enabled

表 120. dbms.routing.reads_on_writers_enabled

描述

配置 dbms.routing.getRoutingTable() 过程是否应将写入者包括为读取端点,还是仅返回非写入者(非写入者主节点和辅助节点)。
注意:如果没有其他成员,写入者将被作为读取端点返回。

有效值

一个布尔值。

默认值

false

dbms.routing_ttl

表 121. dbms.routing_ttl

描述

调用者应缓存路由过程 dbms.routing.getRoutingTable() 响应的时间长度。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s),最小值为 1s

默认值

5m

Cypher 设置

Cypher 设置会影响 Cypher 查询的行为。它们可用于优化 Cypher 查询的性能或限制可执行的查询类型。有关更多信息,请参阅 统计信息和执行计划

db.query.default_language

表 122. db.query.default_language

描述

数据库的默认语言决定了评估未明确选择语言的查询时所使用的语言。此设置确定了在 CREATEALTER 数据库时未指定语言的新(和初始)数据库所使用的默认语言。

有效值

[CYPHER_5, CYPHER_25] 中的一个。于 2025.07 更改

默认值

CYPHER_5

dbms.cypher.forbid_exhaustive_shortestpath

表 123. dbms.cypher.forbid_exhaustive_shortestpath

描述

此设置与性能优化相关。在某些情况下,更倾向于让使用 'shortestPath' 函数的任何查询立即终止并返回无结果,而不是尝试寻找结果而长时间运行(即使根本找不到路径),此时请将其设置为 true。对于大多数查询,'shortestPath' 算法会非常快地返回正确答案。但在某些情况下,即使存在路径,快速双向广度优先搜索算法也可能找不到结果。当 WHERE 子句中应用于 'shortestPath' 的谓词无法应用于遍历的每一步,而只能应用于整个路径时,就会发生这种情况。当查询规划器检测到这些特殊情况时,如果快速算法未找到路径,它将计划执行穷举深度优先搜索。然而,穷举搜索的速度可能比快速算法慢几个数量级。如果查询尽快终止至关重要,建议将此选项设置为 true,这意味着 Neo4j 将永远不会考虑对 shortestPath 查询使用穷举搜索。但是,请注意,如果未找到路径,将在运行时抛出错误,需要由应用程序进行处理。

有效值

一个布尔值。

默认值

false

dbms.cypher.forbid_shortestpath_common_nodes

表 124. dbms.cypher.forbid_shortestpath_common_nodes

描述

此设置与性能优化相关。当起始节点和结束节点相同时,最短路径算法无法工作。将此设置设置为 false 时,发生这种情况将不会返回路径。默认值 true 将抛出异常。如果您在笛卡尔积之后执行 shortestPath 搜索,而传递给 shortestPath 的某些行的起始和结束节点可能相同,则可能会发生这种情况。如果您宁愿不遇到此异常,并且对于这些行缺少结果是可以接受的,则将其设置为 false。如果您无法接受缺少结果,并且确实需要两个相同节点之间的最短路径,请使用标准的 Cypher 可变长度模式表达式重写查询,然后按路径长度排序并限制为一个结果。

有效值

一个布尔值。

默认值

true

dbms.cypher.hints_error

表 125. dbms.cypher.hints_error

描述

设置此项以指定当无法满足 Cypher 规划器或运行时提示时的行为。如果为 true,则不符合将导致错误,否则仅生成警告。

有效值

一个布尔值。

默认值

false

dbms.cypher.infer_schema_parts

表 126. dbms.cypher.infer_schema_parts

描述

允许在基数估计期间进行标签推断。如果规划器可以从逻辑上推断出节点具有查询中未明确表达的标签,则规划器将在基数估计期间使用此信息。
此设置控制规划器进行此操作的程度

  • OFF:不推断谓词。

  • MOST_SELECTIVE_LABEL:关系类型用于推断关系端节点上的标签。规划器每个节点最多推断一个标签。如果给定节点可以推断出多个标签,规划器保留最具选择性的标签,即对应于图中节点数最少的那个标签。

有效值

[MOST_SELECTIVE_LABEL, OFF] 中的一个。

默认值

OFF

对于某些查询,规划器可以从图结构中推断出标签或类型等谓词,这可以改善对每个操作符产生行数的估计。有关更多信息,请参阅 Cypher 手册 → 执行计划和查询优化 → 理解执行计划
有关如何按查询配置此设置以在该特定查询上有效地覆盖此设置的详细信息,请参阅 Cypher 手册 → 查询优化 → Cypher 推断模式部分

dbms.cypher.lenient_create_relationship

表 127. dbms.cypher.lenient_create_relationship

描述

设置此项以更改当起始或结束节点缺失时 Cypher 创建关系的行为。默认情况下,这会使查询失败并停止执行,但通过设置此标志,创建操作将不会执行,执行将继续。

有效值

一个布尔值。

默认值

false

dbms.cypher.min_replan_interval

表 128. dbms.cypher.min_replan_interval

描述

两次可能的 Cypher 查询重新规划事件之间的最短时间。此时间过后,将评估图统计信息,如果它们的变化超过了 dbms.cypher.statistics_divergence_threshold 设置的值,查询将重新规划。如果统计信息变化不足,则在统计信息再次被评估之前,必须经过相同的间隔。每次评估时,发散阈值都会略微降低,直到 7 小时后达到 10%,因此即使是适度变化的数据库,在经过足够长的时间间隔后也会看到查询重新规划。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

10s

dbms.cypher.planner

表 129. dbms.cypher.planner

描述

设置此项以指定默认语言版本的默认规划器。

有效值

[DEFAULT, COST] 中的一个。

默认值

DEFAULT

dbms.cypher.render_plan_description

表 130. dbms.cypher.render_plan_description

描述

如果设置为 true,则所有使用 EXPLAINPROFILE 运行的查询的计划描述的文本表示形式将在服务器上呈现。这允许 neo4j 浏览器和 Cypher shell 等客户端显示更详细的计划描述。

有效值

一个布尔值。

默认值

true

dbms.cypher.statistics_divergence_threshold

表 131. dbms.cypher.statistics_divergence_threshold

描述

统计信息的阈值,超过此阈值,计划被视为过期。

如果创建计划所使用的任何底层统计信息的变化超过此值,则计划将被视为过期并重新规划。变化计算公式为 abs(a-b)/max(a,b)

这意味着 0.75 的值要求数据库规模翻两番才会重新规划查询。0 的值意味着只要统计信息有任何变化且重新规划间隔已过,查询就会被重新规划。

此间隔由 dbms.cypher.min_replan_interval 定义,默认值为 10 秒。在此间隔后,发散阈值将开始缓慢下降,约 7 小时后达到 10%。这将确保即使是长时间运行的数据库在有适度变化时也能获得查询重新规划,而在变化非常大之前不会频繁地重新规划。

有效值

介于 0.01.0 之间的双精度浮点数。

默认值

0.75

dbms.cypher.transactions.default_subquery_retry_timeout

表 132. dbms.cypher.transactions.default_subquery_retry_timeout

描述

在具有 CALL () { …​ } IN TRANSACTIONS …​ ON ERROR RETRY …​ 子句的查询中,尝试重试因瞬态错误而失败的子查询事务的默认最长时间。此设置仅在查询中未明确指定重试超时时使用。例如,CALL () { …​ } IN TRANSACTIONS …​ ON ERROR RETRY FOR 10 SECONDS 将使用 10 秒的重试超时覆盖此设置,用于该特定查询。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, h 和 d)。

默认值

30s

server.cypher.parallel.worker_limit

表 133. server.cypher.parallel.worker_limit

描述

分配给并行运行时的 Cypher 工作线程数。如果设置为正数,则将启动该数量的工作线程。如果设置为 0,则会为 Java 虚拟机可用的每个逻辑处理器启动一个工作线程。

如果设置为负数,则服务器上可用的逻辑处理器总数将减少该数字的绝对值。例如,如果服务器有 16 个可用处理器,而您将 server.cypher.parallel.worker_limit 设置为 -1,则并行运行时将有 15 个线程可用。

有效值

一个整数。

默认值

0

数据库设置

数据库设置会影响 Neo4j 数据库的行为,例如文件监视服务、数据库格式、数据库存储文件和数据库时区。它们可以在每个数据库之间有所不同,但必须在集群/DBMS 中的所有配置文件中保持一致。

db.filewatcher.enabled

表 134. db.filewatcher.enabled

描述

允许启用或禁用文件监视服务。这是一种辅助服务,但在几乎所有情况下都应保持启用。

有效值

一个布尔值。

默认值

true

db.format

表 135. db.format

描述

数据库格式。这是将用于新数据库的格式。有效值为 standardalignedhigh_limitblockaligned 格式本质上是 standard 格式,在页面末尾有一些最小的填充,使得单个记录永远不会跨越页面边界。high_limitblock 格式仅适用于企业版。如果您的图大于 340 亿个节点、340 亿个关系或 680 亿个属性,则必须使用 high_limitblock

有效值

一个字符串。

默认值

block

standardhigh_limit 格式在 Neo4j 5.23 中已弃用。

db.relationship_grouping_threshold

表 136. db.relationship_grouping_threshold

描述

将节点视为密集节点的数量阈值。此设置仅适用于 standardalignedhigh_limit 格式。

有效值

最小为 1 的整数。

默认值

50

db.store.files.preallocate

表 137. db.store.files.preallocate

描述

指定 Neo4j 在存储文件增长时是否应尝试预分配存储文件。

有效值

一个布尔值。

默认值

true

db.temporal.timezone

表 138. db.temporal.timezone

描述

时间函数使用的数据库时区。所有在创建时未明确指定时区的 Time 和 DateTime 值都将使用此配置的默认时区。

有效值

描述时区的字符串,可以通过偏移量(例如 +02:00)或名称(例如 Europe/Stockholm)来描述。

默认值

Z

db.track_query_cpu_time

表 139. db.track_query_cpu_time

描述

启用或禁用对查询在 CPU 上主动执行所花费的时间的跟踪。调用 SHOW TRANSACTIONS 将显示该时间,但不会显示在 query.log 中。
如果您希望 CPU 时间记录在 query.log 中,请设置 db.track_query_cpu_time=true

有效值

一个布尔值。

默认值

false

DBMS 设置

DBMS 设置影响整个 Neo4j DBMS。您可以使用它们来设置默认数据库、DBMS 时区、种子提供程序列表以及数据库的最大数量。DBMS 设置必须在集群/DBMS 中的所有配置文件中保持一致。

initial.dbms.default_database

表 140. initial.dbms.default_database

描述

指定 第一次 DBMS 启动之前的默认数据库名称。在初始默认数据库创建后,更改此设置无效。要更改默认数据库,请改为使用 dbms.setDefaultDatabase() 过程。

此设置与 dbms.default_database 不同,后者用于在 Neo4j 4.x 及更早版本中设置默认数据库。

有效值

有效的数据库名称,仅包含字母、数字、点和破折号,长度在 3 到 63 个字符之间,以字母或数字开头,但不能以名称 system 开头。

默认值

neo4j

dbms.db.timezone

表 141. dbms.db.timezone

描述

数据库时区。除其他事项外,此设置会影响监控过程。

有效值

[UTC, SYSTEM] 中的一个。

默认值

UTC

dbms.databases.seed_from_uri_providers

表 142. dbms.databases.seed_from_uri_providers

描述

数据库可以从存储在特定源 URI 的现有 种子(数据库备份或转储)中创建。com.neo4j.dbms.seeding.SeedProvider 的不同实现支持各种类型的种子源。

可以使用以下值:CloudSeedProvider, FileSeedProvider, S3SeedProviderURLConnectionSeedProvider

  • CloudSeedProvider 支持以 s3, azb, gs 寻址的种子。

  • FileSeedProvider 支持以 file 寻址的种子。

  • S3SeedProvider 支持以 s3 寻址的种子,但已弃用,仅可在 Cypher 5 中使用。

  • URLConnectionSeedProvider 支持以 ftp, httphttps 寻址的种子。

此列表指定启用的种子提供程序。如果列表中的多个提供程序支持种子源(URI 方案),则将使用第一个匹配的提供程序。如果列表为空,则从 URI 种子功能实际上被禁用。有关更多信息,请参阅 从 URI 种子化

有效值

逗号分隔的列表,其中每个元素都是一个字符串。

默认值

CloudSeedProvider 于 2025.01 更改

dbms.max_databases

表 143. dbms.max_databases

描述

数据库的最大数量。

有效值

长整型,最小值为 2

默认值

100

dbms.usage_report.enabled

表 144. dbms.usage_report.enabled

描述

使用数据报告。

有效值

一个布尔值。

默认值

true

Fleet Manager 设置

dbms.fleet_manager.enabled

表 145. dbms.fleet_manager.enabled

描述

启用 Fleet Manager 功能以用于 Neo4j Aura 监控。

有效值

一个布尔值。

默认值

true 于 2026.03 更改

从 2026.03 开始,Fleet Manager 已内置并默认启用,因此无需单独下载和安装插件。

导入设置

导入设置控制 LOAD CSV 使用的内部缓冲区大小以及 CSV 文件中引号的转义方式。

db.import.csv.buffer_size

表 146. db.import.csv.buffer_size

描述

LOAD CSV 使用的内部缓冲区的大小(以字节为单位)。如果 CSV 文件包含巨大的字段,则可能需要增加此值。

有效值

最小为 1 的长整数。

默认值

2097152

db.import.csv.legacy_quote_escaping

表 147. db.import.csv.legacy_quote_escaping

描述

选择在加载使用 LOAD CSV 的 CSV 文件时,是否符合标准 https://datatracker.ietf.org/doc/html/rfc4180 来解释转义引号字符。将此项设置为 false 将使用标准,将重复引号 '""' 解释为单个内联引号;而 true 将使用 Neo4j 3.0 和 3.1 最初支持的传统约定,允许反斜杠在字段内包含引号。

有效值

一个布尔值。

默认值

true

索引设置

索引设置控制全文索引和后台索引采样(块大小限制和采样大小)。有关更多信息,请参阅 索引配置

db.index.fulltext.default_analyzer

表 148. db.index.fulltext.default_analyzer

描述

全文索引默认应使用的分析器名称。

有效值

一个字符串。

默认值

standard-no-stop-words

db.index.fulltext.eventually_consistent

表 149. db.index.fulltext.eventually_consistent

描述

全文索引默认是否应为最终一致性。

有效值

一个布尔值。

默认值

false

db.index.fulltext.eventually_consistent_apply_parallelism

表 150. db.index.fulltext.eventually_consistent_apply_parallelism

描述

处理最终一致性全文索引的排队索引更新的线程数。

有效值

最小为 1 的整数。

默认值

1

db.index.fulltext.eventually_consistent_refresh_interval

表 151. db.index.fulltext.eventually_consistent_refresh_interval

描述

刷新最终一致性全文索引的频率(确保更改可见)。如果设置为 0,则由应用最终一致性全文索引更新的线程执行刷新。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, h 和 d)。

默认值

0s

db.index.fulltext.eventually_consistent_refresh_parallelism

表 152. db.index.fulltext.eventually_consistent_refresh_parallelism

描述

可以并行进行全文索引刷新的线程数,即可以并行刷新的最终一致性全文索引数。

有效值

最小为 1 的整数。

默认值

1

db.index.fulltext.eventually_consistent_index_update_queue_max_length

表 153. db.index.fulltext.eventually_consistent_index_update_queue_max_length

描述

全文索引的 最终一致性 模式通过将索引更新排队以在后台线程中稍后应用来工作。此新生成器为此队列中在任何时间点允许存在的索引更新数量设置了上限。达到该限制时,提交过程将减慢并等待索引更新应用线程在队列中腾出一些空间。

有效值

介于 150000000 之间的整数。

默认值

10000

db.index_sampling.background_enabled

表 154. db.index_sampling.background_enabled

描述

启用或禁用后台索引采样。

有效值

一个布尔值。

默认值

true

db.index_sampling.sample_size_limit

表 155. db.index_sampling.sample_size_limit

描述

索引采样块大小限制。

有效值

介于 10485762147483647 之间的整数。

默认值

8388608

db.index_sampling.update_percentage

表 156. db.index_sampling.update_percentage

描述

触发给定索引采样之前所需的索引更新占总索引大小的百分比。

有效值

最小值为 0 的整数。

默认值

5

日志记录设置

Neo4j 有两个不同的日志记录配置文件,一个用于 neo4j.log,其中包含有关 Neo4j 的一般信息;另一个用于通过 Log4j 2 进行的所有其他类型的日志记录的配置文件(gc.log 除外,它由 Java 虚拟机 (JVM) 处理)。有关更多信息,请参阅 日志记录

db.logs.query.annotation_data_format

表 157. db.logs.query.annotation_data_format

描述

用于 JSON 注释数据的格式。

CYPHER

格式化为 Cypher 映射。例如:{foo: 'bar', baz: {k: 1}}

JSON

格式化为 JSON 映射。例如:{"foo": "bar", "baz": {"k": 1}}

FLAT_JSON

格式化为扁平化的 JSON 映射。例如:{"foo": "bar", "baz.k": 1}

这仅在查询日志为 JSON 格式时有效。

有效值

[CYPHER, JSON, FLAT_JSON] 中的一个。

默认值

JSON 于 2025.01 更改

db.logs.query.early_raw_logging_enabled

表 158. db.logs.query.early_raw_logging_enabled

描述

记录查询文本和参数而不混淆密码。这允许在解析开始之前更早地记录查询。

有效值

一个布尔值。

默认值

false

db.logs.query.enabled

表 159. db.logs.query.enabled

描述

记录已执行的查询。有效值为 OFF, INFOVERBOSE

OFF

不进行日志记录。

INFO

在执行结束时记录耗时超过配置阈值 db.logs.query.threshold 的查询。

VERBOSE

无论 db.logs.query.threshold 如何,都在执行开始和结束时记录查询。

日志条目被写入查询日志。

此功能在 Neo4j 企业版中可用。

有效值

[OFF, INFO, VERBOSE] 中的一个。

默认值

VERBOSE

db.logs.query.max_parameter_length

表 160. db.logs.query.max_parameter_length

描述

设置日志中每个参数的最大字符长度。这仅在 db.logs.query.parameter_logging_enabled = true 时生效。

有效值

一个整数。

默认值

2147483647

db.logs.query.obfuscate_errors

表 161. db.logs.query.obfuscate_errors

描述

如果为 true,则在将错误信息写入查询日志之前,混淆所有可能包含敏感数据的错误信息。当查询日志使用 JSON 格式时,这适用于 failureReasonstatusDescription 字段;否则适用于错误消息。建议在生产环境中将此设置设置为 true

有效值

一个布尔值。

默认值

false

db.logs.query.obfuscate_literals

表 162. db.logs.query.obfuscate_literals

描述

如果为 true,则在将查询写入查询日志之前混淆查询中的所有字面量。请注意,节点标签、关系类型和映射属性键保持可见。更改此设置不会影响已缓存的查询。要立即应用更改,您还必须调用 CALL db.clearQueryCaches()。建议在生产环境中将此设置设置为 true

有效值

一个布尔值。

默认值

false

请记住,如果 Neo4j 收到无法解析的格式错误的查询,它无法混淆其字面量(因为它不知道哪些部分是字面量),因此查询文本将不会包含在任何日志记录中。

db.logs.query.parameter_logging_enabled

表 163. db.logs.query.parameter_logging_enabled

描述

记录正在被记录的已执行查询的参数。

有效值

一个布尔值。

默认值

true

db.logs.query.plan_description_enabled

表 164. db.logs.query.plan_description_enabled

描述

记录查询计划描述表,这对调试目的非常有用。

有效值

一个布尔值。

默认值

false

db.logs.query.threshold

表 165. db.logs.query.threshold

描述

如果查询的执行时间超过此阈值,则在查询完成后记录该查询 - 前提是将查询日志记录设置为 INFO。默认为 0 秒,即所有查询都会被记录。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

0s

db.logs.query.transaction.enabled

表 166. db.logs.query.transaction.enabled

描述

记录事务的开始和结束。有效值为 'OFF', 'INFO' 或 'VERBOSE'。OFF:不记录。INFO:记录耗时超过配置阈值 db.logs.query.transaction.threshold 的事务的开始和结束。VERBOSE:记录所有事务的开始和结束。日志条目被写入查询日志。

有效值

[OFF, INFO, VERBOSE] 中的一个。

默认值

OFF

db.logs.query.transaction.threshold

表 167. db.logs.query.transaction.threshold

描述

如果事务打开的时间超过此阈值,则在事务完成后记录该事务 - 前提是将事务日志记录 (db.logs.query.transaction.enabled) 设置为 INFO。默认为 0 秒(所有事务都会被记录)。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

0s

dbms.logs.http.enabled

表 168. dbms.logs.http.enabled

描述

启用 HTTP 请求日志记录。

有效值

一个布尔值。

默认值

false

server.logs.config

表 169. server.logs.config

描述

调试、查询、http 和安全日志的日志配置路径。

有效值

路径。如果是相对路径,则从 server.directories.configuration 解析。

默认值

server-logs.xml

server.logs.debug.enabled

表 170. server.logs.debug.enabled

描述

启用调试日志。

有效值

一个布尔值。

默认值

true

server.logs.gc.enabled

表 171. server.logs.gc.enabled

描述

启用 GC 日志记录。

有效值

一个布尔值。

默认值

false

server.logs.gc.options

表 172. server.logs.gc.options

描述

GC 日志记录选项。

有效值

一个字符串。

默认值

-Xlog:gc*,safepoint,age*=trace

server.logs.gc.rotation.keep_number

表 173. server.logs.gc.rotation.keep_number

描述

要保留的 GC 日志数量。

有效值

一个整数。

默认值

5

server.logs.gc.rotation.size

表 174. server.logs.gc.rotation.size

描述

保留的每个 GC 日志的大小。

有效值

一个字节大小(有效乘数为 B, KiB, KB, K, kB, kb, k, MiB, MB, M, mB, mb, m, GiB, GB, G, gB, gb, g, TiB, TB, PiB, PB, EiB, EB)。

默认值

20.00MiB

server.logs.user.config

表 175. server.logs.user.config

描述

用户日志的日志配置路径。

有效值

路径。如果是相对路径,则从 server.directories.configuration 解析。

默认值

user-logs.xml

内存设置

内存设置控制分配给 Neo4j 的内存量及其使用方式。建议进行一定程度的测试和调整,以确定可用内存的最佳分配方案。有关如何调整这些设置的更多信息,请参阅 内存配置磁盘、RAM 和其他提示 以及 垃圾收集器调整

db.memory.pagecache.warmup.enable

表 176. db.memory.pagecache.warmup.enable

描述

页缓存可以配置为对已加载的页面进行使用采样,这些采样可用于构建活动加载配置文件。根据该配置文件,页面可以在重启、复制等过程中重新加载。此设置允许禁用该行为。此功能在 Neo4j 企业版中可用。

有效值

一个布尔值。

默认值

true

db.memory.pagecache.warmup.order

表 177. db.memory.pagecache.warmup.order

描述

根据配置文件对页缓存文件进行预热的顺序。

有效值

[NONE, ALPHABETIC, PRIORITY] 中的一个。

默认值

NONE

db.memory.pagecache.warmup.preload

表 178. db.memory.pagecache.warmup.preload

描述

页缓存预热可以配置为预取文件,最好在缓存大小大于存储大小时进行。可预取的文件可以通过 'dbms.memory.pagecache.warmup.preload.allowlist' 进行过滤。启用此项将禁用按配置文件的预热。

有效值

一个布尔值。

默认值

false

db.memory.pagecache.warmup.preload.allowlist

表 179. db.memory.pagecache.warmup.preload.allowlist

描述

页缓存预热预取文件允许列表正则表达式。默认匹配所有文件。

有效值

一个字符串。

默认值

.*

db.memory.pagecache.warmup.profile.interval

表 180. db.memory.pagecache.warmup.profile.interval

描述

页缓存的分析频率。准确的配置文件允许页缓存在此重启后进行主动预热,从而缩短达到性能指标所需的平均时间。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

1m

db.memory.transaction.max

表 181. db.memory.transaction.max

描述

限制单个事务可以消耗的内存量(以字节为单位,或者后缀为 'k' 的千字节,'m' 的兆字节,以及 'g' 的千兆字节)。零表示“最大可能值”。

有效值

字节大小(有效的乘数为 B, KiB, KB, K, kB, kb, k, MiB, MB, M, mB, mb, m, GiB, GB, G, gB, gb, g, TiB, TB, PiB, PB, EiB, EB),最小值为 1.00MiB 或为 0B

默认值

0B

db.memory.transaction.total.max

表 182. db.memory.transaction.total.max

描述

限制一个数据库中所有事务可以消耗的内存量(以字节为单位,或者后缀为 'k' 的千字节,'m' 的兆字节,以及 'g' 的千兆字节)。零表示“无限”。

有效值

字节大小(有效的乘数为 B, KiB, KB, K, kB, kb, k, MiB, MB, M, mB, mb, m, GiB, GB, G, gB, gb, g, TiB, TB, PiB, PB, EiB, EB),最小值为 10.00MiB 或为 0B

默认值

0B

server.db.query_cache_size

表 183. server.db.query_cache_size

描述

每个数据库的缓存 Cypher 查询执行计划数量。缓存中可保持的最大查询计划数量为 数据库数量 * server.db.query_cache_size。如果有 10 个数据库,server.db.query_cache_size=1000,则实例上的缓存总共可以保持 10000 个计划,前提是每个数据库接收的查询都填满了其缓存。

有效值

最小值为 0 的整数。

默认值

1000

替换为

dbms.memory.tracking.enable

表 184. dbms.memory.tracking.enable

描述

启用堆外和堆内内存跟踪。对于集群,不应将其设置为 false

有效值

一个布尔值。

默认值

true

dbms.memory.transaction.total.max

表 185. dbms.memory.transaction.total.max

描述

限制所有运行中事务可以消耗的内存量(以字节为单位,或者后缀为 'k' 的千字节,'m' 的兆字节,以及 'g' 的千兆字节)。零表示“无限”。默认为堆大小限制的 70%。

有效值

字节大小(有效的乘数为 B, KiB, KB, K, kB, kb, k, MiB, MB, M, mB, mb, m, GiB, GB, G, gB, gb, g, TiB, TB, PiB, PB, EiB, EB),最小值为 10.00MiB 或为 0B

默认值

server.memory.heap.initial_size

表 186. server.memory.heap.initial_size

描述

初始堆大小。默认情况下,它是根据可用系统资源计算得出的。

有效值

一个字节大小(有效乘数为 B, KiB, KB, K, kB, kb, k, MiB, MB, M, mB, mb, m, GiB, GB, G, gB, gb, g, TiB, TB, PiB, PB, EiB, EB)。

默认值

server.memory.heap.max_size

表 187. server.memory.heap.max_size

描述

最大堆大小。默认情况下,它是根据可用系统资源计算得出的。

有效值

一个字节大小(有效乘数为 B, KiB, KB, K, kB, kb, k, MiB, MB, M, mB, mb, m, GiB, GB, G, gB, gb, g, TiB, TB, PiB, PB, EiB, EB)。

默认值

server.memory.pagecache.directio

表 188. server.memory.pagecache.directio

描述

对页缓存使用直接 I/O。此设置仅在 Linux 上受支持,且仅适用于使用平台对齐页面大小的记录格式子集。

有效值

一个布尔值。

默认值

false

server.memory.pagecache.flush.buffer.enabled

表 189. server.memory.pagecache.flush.buffer.enabled

描述

页缓存可以配置为使用临时缓冲区进行刷新。如果可能,它用于将一系列多个缓存页面合并为一个更大的缓冲区,以最大限度地减少执行的单个 IOPS 数量,并更好地利用可用的 I/O 资源,尤其是在这些资源受限时。

有效值

一个布尔值。

默认值

false

server.memory.pagecache.flush.buffer.size_in_pages

表 190. server.memory.pagecache.flush.buffer.size_in_pages

描述

页缓存可以配置为使用临时缓冲区进行刷新。如果可能,它用于将一系列多个缓存页面合并为一个更大的缓冲区,以最大限度地减少执行的单个 IOPS 数量,并更好地利用可用的 I/O 资源,尤其是在这些资源受限时。使用此设置可配置单个文件刷新缓冲区的大小(以页面为单位,8KiB)。为了能够在页缓存刷新期间利用此缓冲区,必须启用缓冲刷新。

有效值

介于 1512 之间的整数。

默认值

128

server.memory.pagecache.scan.prefetchers

表 191. server.memory.pagecache.scan.prefetchers

描述

进行顺序扫描时用于预取数据的最大工作线程数。设置为 '0' 可禁用扫描的预取。

有效值

介于 0255 之间的整数。

默认值

4

server.memory.pagecache.size

表 192. server.memory.pagecache.size

描述

用于映射存储文件的内存量。如果 Neo4j 在专用服务器上运行,则通常建议为操作系统留出约 2-4GB,给 JVM 足够的堆来容纳所有事务状态和查询上下文,然后将剩余部分留给页缓存。如果未配置页缓存内存,则会根据可用系统资源计算启发式设置。默认情况下,页缓存的大小将为可用 RAM 的 50% 减去最大堆大小。页缓存的大小也不会大于最大堆大小的 70 倍(由于堆中页缓存的一些开销)。

有效值

一个字节大小(有效乘数为 B, KiB, KB, K, kB, kb, k, MiB, MB, M, mB, mb, m, GiB, GB, G, gB, gb, g, TiB, TB, PiB, PB, EiB, EB)。

默认值

server.memory.query_cache.sharing_enabled

表 193. server.memory.query_cache.sharing_enabled

描述

启用在不同数据库之间共享缓存空间。开启此选项后,数据库将共享缓存空间,但不共享缓存条目。这意味着数据库可以存储和检索共享缓存中的条目,但它可能无法检索由另一个数据库生成的条目。但是,根据约束的缓存大小和缓存驱逐策略,数据库可能会根据需要驱逐来自其他数据库的条目。本质上,数据库可能会竞争缓存空间,但可能不会观察彼此的条目。

开启此选项后,所有数据库可用的缓存空间通过 server.memory.query_cache.shared_cache_num_entries 配置。关闭此选项后,每个单独数据库可用的缓存空间通过 server.memory.query_cache.per_db_cache_num_entries 配置。

有效值

一个布尔值。

默认值

false

server.memory.query_cache.shared_cache_num_entries

表 194. server.memory.query_cache.shared_cache_num_entries

描述

所有数据库的缓存查询数量。缓存中可保持的最大查询数量正好是 server.memory.query_cache.shared_cache_num_entries。仅当 server.memory.query_cache.sharing_enabled 设置为 true 时,此设置才决定缓存大小。

有效值

最小值为 0 的整数。

默认值

1000

server.memory.query_cache.per_db_cache_num_entries

表 195. server.memory.query_cache.per_db_cache_num_entries

描述

每个数据库的缓存查询数量。缓存中可保持的最大查询数量为 数据库数量 * server.memory.query_cache.per_db_cache_num_entries。如果有 10 个数据库,server.memory.query_cache.per_db_cache_num_entries=1000,则缓存总共可以保持 10000 个计划。仅当 server.memory.query_cache.sharing_enabled 设置为 false 时,此设置才决定缓存大小。

有效值

最小值为 0 的整数。

默认值

1000

指标设置

指标设置控制 Neo4j 是否记录指标、记录哪些指标、如何记录它们以及如何公开它们。为了更好地理解指标设置以及如何配置它们,请参阅 指标

server.metrics.csv.enabled

表 196. server.metrics.csv.enabled

描述

设置为 true 以启用将指标导出到 CSV 文件。

有效值

一个布尔值。

默认值

true

server.metrics.csv.interval

表 197. server.metrics.csv.interval

描述

CSV 文件的报告间隔。即,新数据行追加到 CSV 文件的频率。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s),最小为 1ms

默认值

30s

server.metrics.csv.rotation.compression

表 198. server.metrics.csv.rotation.compression

描述

决定对 csv 历史记录文件使用什么压缩。

有效值

[NONE, ZIP, GZ] 中的一个。

默认值

ZIP 于 2025.01 更改

server.metrics.csv.rotation.keep_number

表 199. server.metrics.csv.rotation.keep_number

描述

csv 文件的最大历史记录文件数量。

有效值

最小为 1 的整数。

默认值

7

server.metrics.csv.rotation.size

表 200. server.metrics.csv.rotation.size

描述

csv 文件自动轮换的文件大小(以字节为单位)。如果设置为零,则不会发生轮换。接受二进制后缀 k, mg

有效值

字节大小(有效的乘数为 B, KiB, KB, K, kB, kb, k, MiB, MB, M, mB, mb, m, GiB, GB, G, gB, gb, g, TiB, TB, PiB, PB, EiB, EB),范围在 0B8388608.00TiB 之间。

默认值

10.00MiB

server.metrics.enabled

表 201. server.metrics.enabled

描述

启用指标。将其设置为 false 将关闭所有指标。

有效值

一个布尔值。

默认值

true

server.metrics.filter

表 202. server.metrics.filter

描述

通过使用逗号分隔的通配模式列表来指定应启用哪些指标。只有匹配过滤器的指标才会被启用。例如,*check_point*,neo4j.page_cache.evictions 将启用任何检查点指标和页缓存驱逐指标。

有效值

以逗号分隔的列表,其中每个元素都是一个可以使用 *? 的简单通配模式。

默认值

*bolt.connections*,*bolt.messages_received*,*bolt.messages_started*,*dbms.pool.bolt.free,*dbms.pool.bolt.total_size,*dbms.pool.bolt.total_used,*dbms.pool.bolt.used_heap,*cluster.raft.is_leader,*cluster.raft.last_leader_message,*cluster.raft.replication_attempt,*cluster.raft.replication_fail,*cluster.raft.last_applied,*cluster.raft.last_appended,*cluster.raft.append_index,*cluster.raft.commit_index,*cluster.raft.applied_index,*check_point.*,*cypher.replan_events,*cypher.cache*,*ids_in_use*,*.neo4j.count.*,*pool.transaction.*.total_used,*pool.transaction.*.used_heap,*pool.transaction.*.used_native,*store.size*,*transaction.active_read,*transaction.active_write,*transaction.committed*,*transaction.last_committed_tx_id,*transaction.peak_concurrent,*transaction.rollbacks*,*page_cache.hit*,*page_cache.page_faults,*page_cache.usage_ratio,*vm.file.descriptors.count,*vm.gc.time.*,*vm.heap.used,*vm.memory.buffer.direct.used,*vm.memory.pool.g1_eden_space,*vm.memory.pool.g1_old_gen,*vm.pause_time,*vm.thread*,*db.query.execution*,*protocol* 于 2025.03 更改 于 2025.06 更改

server.metrics.filter 的默认值在 Neo4j 2025.03 和 2025.06 中已更改。

有关详细信息,请参阅 Neo4j 2025-2026 系列中的更改

server.metrics.deny_filter

表 203. server.metrics.deny_filter

描述

通过使用逗号分隔的通配模式列表来指定应禁用哪些指标。覆盖 server.metrics.filter 的已启用指标。例如,如果 server.metrics.filter 包含 neo4j.page_cache.*server.metrics.deny_filter 包含 neo4j.page_cache.page_faults,它将启用除 neo4j.page_cache.page_faults 指标之外的所有页缓存指标。

有效值

以逗号分隔的列表,其中每个元素都是一个可以使用 *? 的简单通配模式。

默认值

server.metrics.graphite.enabled

表 204. server.metrics.graphite.enabled

描述

设置为 true 以启用将指标导出到 Graphite。

有效值

一个布尔值。

默认值

false

server.metrics.graphite.interval

表 205. server.metrics.graphite.interval

描述

Graphite 的报告间隔。即,向 Graphite 发送更新指标的频率。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

30s

server.metrics.graphite.server

表 206. server.metrics.graphite.server

描述

Graphite 服务器的主机名或 IP 地址。

有效值

套接字地址,格式为 hostname:port, hostname, 或 :port。如果缺失,则从 server.default_listen_address 获取。

默认值

:2003

server.metrics.jmx.enabled

表 207. server.metrics.jmx.enabled

描述

设置为 true 以启用 JMX 指标端点。

有效值

一个布尔值。

默认值

true

server.metrics.prefix

表 208. server.metrics.prefix

描述

报告的指标字段名称的公共前缀。

有效值

一个字符串。

默认值

neo4j

server.metrics.prometheus.enabled

表 209. server.metrics.prometheus.enabled

描述

设置为 true 以启用 Prometheus 端点。

有效值

一个布尔值。

默认值

false

server.metrics.prometheus.endpoint

表 210. server.metrics.prometheus.endpoint

描述

用作 Prometheus 端点的主机名和端口。

有效值

格式为 主机名:端口主机名:端口 的套接字地址。如果缺失,则从 server.default_listen_address 获取。

默认值

localhost:2004

Neo4j 浏览器和客户端设置

Neo4j 浏览器和客户端设置仅适用于 Neo4j 浏览器和客户端。

browser.allow_outgoing_connections

表 211. browser.allow_outgoing_connections

描述

配置 Neo4j 浏览器传出连接的策略。

有效值

一个布尔值。

默认值

true

browser.credential_timeout

表 212. browser.credential_timeout

描述

配置 Neo4j 浏览器在空闲此周期后使登录用户超时。将其设置为 0 表示没有限制。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, h 和 d)。

默认值

0s

browser.post_connect_cmd

表 213. browser.post_connect_cmd

描述

当 Neo4j 浏览器成功连接到此服务器时运行的命令。用分号分隔多个命令。

有效值

一个字符串。

默认值

browser.remote_content_hostname_whitelist

表 214. browser.remote_content_hostname_whitelist

描述

允许 Neo4j 浏览器从中获取内容的主机白名单。

有效值

一个字符串。

默认值

guides.neo4j.com,localhost

browser.retain_connection_credentials

表 215. browser.retain_connection_credentials

描述

配置 Neo4j 浏览器是否存储用户凭据。

有效值

一个布尔值。

默认值

true

browser.retain_editor_history

表 216. browser.retain_editor_history

描述

配置 Neo4j 浏览器是否存储用户编辑器历史记录。

有效值

一个布尔值。

默认值

true

client.allow_telemetry

表 217. client.allow_telemetry

描述

配置客户端应用程序(例如浏览器和 Bloom)发送产品分析数据。

有效值

一个布尔值。

默认值

true

Kubernetes 设置

Kubernetes 设置用于配置在 Kubernetes 上运行的集群,其中每个服务器都作为 Kubernetes 服务运行。其他服务器的地址可以使用 List Service API 获取,如 Kubernetes API 文档 中所述。有关更多信息,请参阅 Kubernetes 中的发现

dbms.kubernetes.address

表 218. dbms.kubernetes.address

描述

Kubernetes API 的地址。

有效值

格式为 主机名:端口主机名:端口 的套接字地址。

默认值

kubernetes.default.svc:443

dbms.kubernetes.ca_crt

表 219. dbms.kubernetes.ca_crt

描述

Kubernetes API CA 证书的文件位置。

有效值

一个路径。

默认值

/var/run/secrets/kubernetes.io/serviceaccount/ca.crt

dbms.kubernetes.cluster_domain

表 220. dbms.kubernetes.cluster_domain

描述

Kubernetes 集群域。

有效值

一个字符串。

默认值

cluster.local

dbms.kubernetes.label_selector

表 221. dbms.kubernetes.label_selector

描述

Kubernetes API 的 LabelSelector。

有效值

一个字符串。

默认值

dbms.kubernetes.namespace

表 222. dbms.kubernetes.namespace

描述

Kubernetes API 命名空间的文件位置。

有效值

一个路径。

默认值

/var/run/secrets/kubernetes.io/serviceaccount/namespace

dbms.kubernetes.discovery.service_port_name

表 223. dbms.kubernetes.discovery.service_port_name

描述

Kubernetes API 发现的服务端口名称。

有效值

一个字符串。

默认值

transaction

dbms.kubernetes.token

表 224. dbms.kubernetes.token

描述

Kubernetes API 令牌的文件位置。

有效值

一个路径。

默认值

/var/run/secrets/kubernetes.io/serviceaccount/token

安全设置

安全设置用于配置 Neo4j 部署的安全性。有关 Neo4j 安全性的全面信息,请参阅 安全性 部分。

dbms.security.allow_csv_import_from_file_urls

表 225. dbms.security.allow_csv_import_from_file_urls

描述

确定 Cypher 在使用 LOAD CSV 加载数据时是否允许使用文件 URL。将此值设置为 false 将导致 Neo4j 无法执行从文件系统加载数据的 LOAD CSV 子句。

有效值

一个布尔值。

默认值

true

dbms.security.auth_cache_max_capacity

表 226. dbms.security.auth_cache_max_capacity

描述

身份验证和授权缓存的最大容量(分别)。

有效值

一个整数。

默认值

10000

dbms.security.auth_cache_ttl

表 227. dbms.security.auth_cache_ttl

描述

使用外部身份验证提供程序(OIDC、LDAP 或插件)时,缓存的身份验证和授权信息的存活时间 (TTL)。将 TTL 设置为 0 将禁用身份验证缓存。在使用 LDAP 身份验证提供程序时禁用缓存,需要使用 LDAP 系统帐户来解析授权信息。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

10m

dbms.security.auth_cache_use_ttl

表 228. dbms.security.auth_cache_use_ttl

描述

启用外部身份验证提供程序(OIDC、LDAP 或插件)的身份验证和授权信息缓存的基于时间的驱逐。禁用此设置将使缓存永久存在,仅在超过 dbms.security.auth_cache_max_capacity 时才被驱逐。

有效值

一个布尔值。

默认值

true

dbms.security.auth_enabled

表 229. dbms.security.auth_enabled

描述

启用访问 Neo4j 的身份验证要求。

有效值

一个布尔值。

默认值

true

dbms.security.auth_minimum_password_length

表 230. dbms.security.auth_minimum_password_length

描述

密码中所需的最小字符数。

有效值

最小为 1 的整数。

默认值

8

dbms.security.auth_lock_time

表 231. dbms.security.auth_lock_time

描述

在配置的失败身份验证尝试次数后,用户帐户应被锁定的时间长度。在锁定期间结束之前,锁定的用户将无法登录,即使提供了正确的凭据。不建议将此配置选项设置为较低的值,因为它可能使攻击者更容易对密码进行暴力破解。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s),最小为 0s

默认值

5s

dbms.security.auth_max_failed_attempts

表 232. dbms.security.auth_max_failed_attempts

描述

在实施用户锁定配置的时间长度(由 dbms.security.auth_lock_time 定义)之前的最大失败身份验证尝试次数。在锁定期间结束之前,锁定的用户将无法登录,即使提供了正确的凭据。不建议将此配置选项设置为小于 3 的值,因为它可能使攻击者更容易对密码进行暴力破解。

有效值

最小值为 0 的整数。

默认值

3

dbms.security.authentication_providers

表 233. dbms.security.authentication_providers

描述

包含用户和角色的安全身份验证提供程序列表。这可以是任何内置的 nativeldap 提供程序,也可以是外部提供的插件,其自定义名称前缀为 plugin-,即 plugin-<AUTH_PROVIDER_NAME>。当尝试登录时,将按给定顺序对它们进行查询。

有效值

逗号分隔的列表,其中每个元素都是一个字符串。

默认值

native

dbms.security.authorization_providers

表 234. dbms.security.authorization_providers

描述

包含用户和角色的安全授权提供程序列表。这可以是任何内置的 nativeldap 提供程序,也可以是外部提供的插件,其自定义名称前缀为 plugin-,即 plugin-<AUTH_PROVIDER_NAME>。当尝试登录时,将按给定顺序对它们进行查询。

有效值

逗号分隔的列表,其中每个元素都是一个字符串。

默认值

native

dbms.security.abac.authorization_providers

表 235. dbms.security.abac.authorization_providers

描述

授权提供程序的列表,其属性用于评估授权规则。

有效值

一个以逗号分隔的字符串列表,其中的条目必须是有效的 OIDC 授权提供程序,并且这些条目必须存在于 dbms.security.authorization_providers 中。

默认值

dbms.security.cluster_status_auth_enabled

表 236. dbms.security.cluster_status_auth_enabled

描述

要求对访问 Causal Clustering(因果集群)状态端点进行授权。

有效值

一个布尔值。

默认值

true

dbms.security.http_access_control_allow_origin

表 237. dbms.security.http_access_control_allow_origin

描述

通过任何 HTTP 或 HTTPS 连接器发送的 Access-Control-Allow-Origin 标头值。默认值为 '*',以实现最广泛的兼容性。请注意,此处提供的任何 URI 都会将 HTTP/HTTPS 访问限制为仅该 URI。

有效值

一个字符串。

默认值

*

dbms.security.http_auth_allowlist

表 238. dbms.security.http_auth_allowlist

描述

定义无需 Neo4j 身份验证即可访问的 HTTP 路径的允许列表。

有效值

逗号分隔的列表,其中每个元素都是一个字符串。

默认值

/,/browser.*

dbms.security.http_strict_transport_security

表 239. dbms.security.http_strict_transport_security

描述

HTTP Strict-Transport-Security (HSTS) 响应标头的值。此标头告知浏览器网页应仅通过 HTTPS 而非 HTTP 进行访问。它会附加到每个 HTTPS 响应中。该设置默认未设置,因此不发送 'Strict-Transport-Security' 标头。该值应包含诸如 'max-age'、'includeSubDomains' 和 'preload' 之类的指令。

有效值

一个字符串。

默认值

dbms.security.http_static_content_security_policy_header

表 240. dbms.security.http_static_content_security_policy_header

描述

定义返回给静态端点内容的 Content-Security-Policy 标头。

有效值

一个字符串。

默认值

default-src 'self'; script-src 'self' cdn.segment.com canny.io; img-src 'self' guides.neo4j.com data:; style-src 'self' fonts.googleapis.com 'unsafe-inline'; font-src 'self' fonts.gstatic.com; base-uri 'none'; object-src 'none'; frame-ancestors 'none'; connect-src 'self' api.canny.io api.segment.io ws: wss: http: https

dbms.security.key.name

表 241. dbms.security.key.name

描述

用于对称加密的 256 位 AES 加密密钥的名称。

有效值

一个字符串。

默认值

aesKey

dbms.security.keystore.password

表 242. dbms.security.keystore.password

描述

用于访问存储 256 位 AES 加密密钥的密钥库的密码,该密钥用于对称加密。

有效值

一个安全的字符串。

默认值

dbms.security.keystore.path

表 243. dbms.security.keystore.path

描述

存储 256 位 AES 加密密钥的密钥库的位置,该密钥用于对系统数据库中保存的机密进行对称加密。

有效值

一个路径。

默认值

dbms.security.ldap.authentication.attribute

表 244. dbms.security.ldap.authentication.attribute

描述

查找用户时要使用的属性。使用此设置需要将 dbms.security.ldap.authentication.search_for_attribute 设置为 true,并因此需要配置 dbms.security.ldap.authorization.system_usernamedbms.security.ldap.authorization.system_password

有效值

匹配模式 [A-Za-z0-9-]* 的字符串(必须是有效的 LDAP 属性名称,仅包含字母 [A-Za-z]、数字 [0-9] 和连字符 [-])。

默认值

samaccountname

dbms.security.ldap.authentication.cache_enabled

表 245. dbms.security.ldap.authentication.cache_enabled

描述

确定是否应缓存通过 LDAP 服务器进行身份验证的结果。缓存用于限制已成功通过身份验证的用户在网络上必须执行的 LDAP 请求数量。只要现有的缓存条目处于活动状态(请参阅 dbms.security.auth_cache_ttl),就可以根据该条目对用户进行身份验证(而不是通过 LDAP 服务器)。将此项设置为 true 的一个重要后果是,Neo4j 需要缓存凭据的哈希版本以执行凭据匹配。此哈希处理是使用加密哈希函数和随机盐值完成的。最好根据部署此 Neo4j 实例的组织的安全标准,慎重决定是否接受此方法。

有效值

一个布尔值。

默认值

true

dbms.security.ldap.authentication.mechanism

表 246. dbms.security.ldap.authentication.mechanism

描述

LDAP 身份验证机制。这是 simple 或 JNDI 支持的 SASL 机制之一,例如 DIGEST-MD5simple 是基本的用户名和密码身份验证,SASL 用于更高级的机制。有关更多详细信息,请参阅 RFC 2251 LDAPv3 文档。

有效值

一个字符串。

默认值

simple

dbms.security.ldap.authentication.search_for_attribute

表 247. dbms.security.ldap.authentication.search_for_attribute

描述

通过搜索用户的唯一属性来执行身份验证。使用此设置需要配置 dbms.security.ldap.authorization.system_usernamedbms.security.ldap.authorization.system_password

有效值

一个布尔值。

默认值

false

dbms.security.ldap.authentication.user_dn_template

表 248. dbms.security.ldap.authentication.user_dn_template

描述

LDAP 用户 DN 模板。LDAP 对象由其专有名称 (DN) 引用,用户 DN 是 LDAP 完全限定的唯一用户标识符。此设置用于从登录时提交的身份验证令牌中包含的用户主体生成符合 LDAP 目录模式的 LDAP DN。特殊令牌 {0} 是一个占位符,用户主体将在此处替换到 DN 字符串中。

有效值

必须是包含 '{0}' 的字符串,以了解在何处插入运行时身份验证主体。

默认值

uid={0},ou=users,dc=example,dc=com

dbms.security.ldap.authorization.access_permitted_group

表 249. dbms.security.ldap.authorization.access_permitted_group

描述

用户必须属于的 LDAP 组才能获得对系统的任何访问权限。设置此项可限制对属于特定组的 LDAP 用户子集的访问。如果未设置,则任何通过 LDAP 成功验证的用户都将有权访问 PUBLIC 角色以及通过 dbms.security.ldap.authorization.group_to_role_mapping 分配给他们的任何其他角色。

有效值

一个字符串。

默认值

dbms.security.ldap.authorization.group_membership_attributes

表 250. dbms.security.ldap.authorization.group_membership_attributes

描述

用户对象上包含组的属性名称列表,在启用 LDAP 授权时用于映射到角色。当 dbms.security.ldap.authorization.nested_groups_enabled 设置为 true 时,此设置将被忽略。

有效值

一个以逗号分隔的字符串列表,且不能为空。

默认值

memberOf

dbms.security.ldap.authorization.group_to_role_mapping

表 251. dbms.security.ldap.authorization.group_to_role_mapping

描述

从 LDAP 组名到 Neo4j 角色名的授权映射。该映射应格式化为以分号分隔的键值对列表,其中键是 LDAP 组名,值是对应角色名的逗号分隔列表。例如:group1=role1;group2=role2;group3=role3,role4,role5 您也可以在组名周围使用空格和引号,以使此映射更具可读性,例如

`dbms.security.ldap.authorization.group_to_role_mapping`=\
         "cn=Neo4j Read Only,cn=users,dc=example,dc=com"      = reader;    \
         "cn=Neo4j Read-Write,cn=users,dc=example,dc=com"     = publisher; \
         "cn=Neo4j Schema Manager,cn=users,dc=example,dc=com" = architect; \
         "cn=Neo4j Administrator,cn=users,dc=example,dc=com"  = admin

有效值

必须是分号分隔的键值对列表或为空的字符串。

默认值

dbms.security.ldap.authorization.nested_groups_enabled

表 252. dbms.security.ldap.authorization.nested_groups_enabled

描述

此设置确定是否处理多个 LDAP 搜索结果(这是查找嵌套组所必需的)。如果设置为 true,则不使用用户对象上的属性来确定组成员身份(如 dbms.security.ldap.authorization.group_membership_attributes 所指定),而是仅使用 user 对象来确定用户的专有名称,该名称随后将与 dbms.security.ldap.authorization.user_search_filter 一起使用,以执行嵌套组搜索。结果组搜索结果的专有名称将用于确定角色。

有效值

一个布尔值。

默认值

false

dbms.security.ldap.authorization.nested_groups_search_filter

表 253. dbms.security.ldap.authorization.nested_groups_search_filter

描述

用于查找用户所属嵌套组的搜索模板。该过滤器应包含占位符令牌 {0},它将替换为用户的专有名称(使用 dbms.security.ldap.authorization.user_search_filter 为指定用户主体找到的名称)。默认值指定 Active Directory 的 LDAP_MATCHING_RULE_IN_CHAIN (即 1.2.840.113556.1.4.1941) 实现,它将为指定用户遍历组成员身份的祖先。

有效值

一个字符串。

默认值

(&(objectclass=group)(member:1.2.840.113556.1.4.1941:={0}))

dbms.security.ldap.authorization.system_password

表 254. dbms.security.ldap.authorization.system_password

描述

dbms.security.ldap.authorization.use_system_accounttrue 时,用于授权搜索的 LDAP 系统帐户密码。

有效值

一个安全的字符串。

默认值

dbms.security.ldap.authorization.system_username

表 255. dbms.security.ldap.authorization.system_username

描述

dbms.security.ldap.authorization.use_system_accounttrue 时,用于授权搜索的 LDAP 系统帐户用户名。请注意,dbms.security.ldap.authentication.user_dn_template 不会应用于此用户名,因此您可能需要指定完整的 DN。

有效值

一个字符串。

默认值

dbms.security.ldap.authorization.use_system_account

表 256. dbms.security.ldap.authorization.use_system_account

描述

使用系统帐户而不是用户自己的帐户执行授权信息的 LDAP 搜索。如果设置为 false(默认值),组成员身份搜索将在身份验证后立即使用绑定了用户自身帐户的 LDAP 上下文执行。映射的角色将被缓存,时长为 dbms.security.auth_cache_ttl,之后过期,需要重新进行身份验证。为了避免频繁地重新验证会话,您可能需要将相对较长的身份验证缓存过期时间与此选项一起设置。
注意:此选项仅在允许用户在目录中搜索其自己的组成员身份属性时才有效。如果设置为 true,搜索将使用具有目录中所有用户读取权限的特殊系统帐户用户执行。您需要使用设置 dbms.security.ldap.authorization.system_usernamedbms.security.ldap.authorization.system_password 指定用户名和密码。请注意,此帐户只需对 LDAP 目录的相关部分拥有读取权限,不需要拥有对 Neo4j 或任何其他系统的访问权限。

有效值

一个布尔值。

默认值

false

dbms.security.ldap.authorization.user_search_base

表 257. dbms.security.ldap.authorization.user_search_base

描述

启用 LDAP 授权时用于搜索用户对象的基对象或命名上下文的名称。一种常见的情况是,这与 dbms.security.ldap.authentication.user_dn_template 的最后一部分匹配。

有效值

一个不能为空的字符串。

默认值

ou=users,dc=example,dc=com

dbms.security.ldap.authorization.user_search_filter

表 258. dbms.security.ldap.authorization.user_search_filter

描述

启用 LDAP 授权时用于搜索用户主体的 LDAP 搜索过滤器。该过滤器应包含占位符令牌 {0},它将替换为用户主体。

有效值

一个字符串。

默认值

(&(objectClass=*)(uid={0}))

dbms.security.ldap.connection_timeout

表 259. dbms.security.ldap.connection_timeout

描述

建立 LDAP 连接的超时时间。如果无法在给定时间内与 LDAP 服务器建立连接,则会中止尝试。值为 0 表示使用网络协议(即 TCP)的超时值。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

30s

dbms.security.ldap.host

表 260. dbms.security.ldap.host

描述

用于身份验证和授权的 LDAP 服务器的 URL。该设置的格式为 <protocol>://<hostname>:<port>,其中 hostname 是唯一必需的字段。协议支持的值为 ldap(默认)和 ldapsldap 的默认端口为 389,ldaps 的默认端口为 636。例如:ldaps://ldap.example.com:10389。您可以考虑使用 STARTTLS (dbms.security.ldap.use_starttls) 而不是 LDAPS 进行安全连接,在这种情况下,正确的协议是 ldap

有效值

一个字符串。

默认值

localhost

dbms.security.ldap.read_timeout

表 261. dbms.security.ldap.read_timeout

描述

LDAP 读取请求(即搜索)的超时时间。如果 LDAP 服务器未在给定时间内响应,则该请求将被中止。值为 0 表示无限期等待响应。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

30s

dbms.security.ldap.referral

表 262. dbms.security.ldap.referral

描述

建立连接时的 LDAP 引用行为。它是 followignorethrow 之一。

  • follow 自动跟随任何引用

  • ignore 忽略任何引用

  • throw 抛出异常,这将导致身份验证失败。

有效值

一个字符串。

默认值

follow

dbms.security.ldap.use_starttls

表 263. dbms.security.ldap.use_starttls

描述

使用机会性 TLS 与 LDAP 服务器进行安全通信。首先将与 LDAP 服务器建立初始不安全连接,并发出 STARTTLS 命令以在启动身份验证之前协商将连接升级到 TLS。

有效值

一个布尔值。

默认值

false

dbms.security.log_successful_authentication

表 264. dbms.security.log_successful_authentication

描述

设置为将成功的身份验证事件记录到安全日志中。如果设置为 false,则仅记录失败的身份验证事件。如果您发现成功的事件过多地占用日志空间,并且您不需要完整的审计功能,这可能很有用。

有效值

一个布尔值。

默认值

true

dbms.security.logs.ldap.groups_at_debug_level_enabled

表 265. dbms.security.logs.ldap.groups_at_debug_level_enabled

描述

当设置为 true 时,将记录从 LDAP 服务器检索到的组。这仅在安全日志级别设置为 DEBUG 时才会生效。警告:强烈建议在生产环境中运行时将其设置为 false,以防止记录敏感信息。

有效值

一个布尔值。

默认值

false

dbms.security.oidc.<provider>.audience

表 266. dbms.security.oidc.<provider>.audience

描述

ID 令牌中 Audience (aud) 声明的预期值。

有效值

一个以逗号分隔的字符串列表,且不能为空。

dbms.security.oidc.<provider>.auth_endpoint

表 267. dbms.security.oidc.<provider>.auth_endpoint

描述

OIDC 授权端点。如果未提供,Neo4j 将尝试从 well_known_discovery_uri 中发现它。

有效值

一个 URI

dbms.security.oidc.<provider>.auth_flow

表 268. dbms.security.oidc.<provider>.auth_flow

描述

要使用的 OIDC 流程。此流程通过发现端点暴露给客户端。支持的值为 pkceimplicit

有效值

[PKCE, IMPLICIT] 之一。

默认值

PKCE

dbms.security.oidc.<provider>.auth_params

表 269. dbms.security.oidc.<provider>.auth_params

描述

授权端点所需的可选附加参数。请改用 params。该映射是以分号分隔的键值对列表。例如:k1=v1;k2=v2

有效值

简单的键值映射模式 k1=v1;k2=v2

默认值

{}

dbms.security.oidc.<provider>.authorization.group_to_role_mapping

表 270. dbms.security.oidc.<provider>.authorization.group_to_role_mapping

描述

从 IdP 组名到 Neo4j 角色名的授权映射。该映射应格式化为以分号分隔的键值对列表,其中键是 IdP 组名,值是对应角色名的逗号分隔列表。例如:group1=role1;group2=role2;group3=role3,role4,role5 您也可以在组名周围使用空格和引号,以使此映射更具可读性,例如

dbms.security.oidc.<provider>.authorization.group_to_role_mapping=\
         "Neo4j Read Only"      = reader;    \
         "Neo4j Read-Write"     = publisher; \
         "Neo4j Schema Manager" = architect; \
         "Neo4j Administrator"  = admin

有效值

必须是分号分隔的键值对列表或为空的字符串

dbms.security.oidc.<provider>.claims.groups

表 271. dbms.security.oidc.<provider>.claims.groups

描述

用作 Neo4j 组列表的声明。这些可以直接是 Neo4J 角色,也可以使用 dbms.security.oidc.<provider>.authorization.group_to_role_mapping 进行映射。指定的声明应该是一个表示单个组的字符串类型,或者一个表示多个组的字符串数组。

有效值

一个字符串。

dbms.security.oidc.<provider>.claims.username

表 272. dbms.security.oidc.<provider>.claims.username

描述

用作 Neo4j 中用户名的声明。这通常是 sub,但在某些情况下,可能需要使用其他内容,例如电子邮件。

有效值

一个字符串。

默认值

sub

dbms.security.oidc.<provider>.client_id

表 273. dbms.security.oidc.<provider>.client_id

描述

客户端 ID。未使用。此值以前用于验证 id_token 中的 azp 声明,但根据 OIDC 规范的更新,此验证已被删除。

有效值

一个字符串。

dbms.security.oidc.<provider>.config

表 274. dbms.security.oidc.<provider>.config

描述

接受的值(均为可选)为

  • principal:用户电子邮件地址在哪个 JWT 声明中指定,默认为 email。这是浏览器中将显示的值。

  • code_challenge_method:默认值为 S256,这是目前唯一支持的方法。此设置仅适用于 pkce 授权流程

  • token_type_principal:选项几乎总是 access_token(默认)或 id_token

  • token_type_authentication:选项几乎总是 access_token(默认)或 id_token

  • implicit_flow_requires_noncetruefalse。默认为 false

有效值

简单的键值映射模式 k1=v1;k2=v2。有效的键选项为:[implicit_flow_requires_nonce, token_type_authentication, token_type_principal, principal, code_challenge_method]

默认值

{}

dbms.security.logs.oidc.jwt_claims_at_debug_level_enabled

表 275. dbms.security.logs.oidc.jwt_claims_at_debug_level_enabled

描述

当设置为 true 时,它将记录来自 JWT 的声明。这仅在安全日志级别设置为 DEBUG 时才会生效。

强烈建议在生产环境中运行时将其设置为 false,以防止记录敏感信息。此外,请注意 JWT 声明集的内容可能会随时间发生变化,因为它们完全取决于 ID 提供程序。

有效值

一个布尔值。

默认值

false

dbms.security.oidc.<provider>.display_name

表 276. dbms.security.oidc.<provider>.display_name

描述

由发现端点提供给客户端(Bloom、Browser 等)的面向用户的提供程序名称。

有效值

一个字符串。

dbms.security.oidc.<provider>.get_groups_from_user_info

表 277. dbms.security.oidc.<provider>.get_groups_from_user_info

描述

启用后,Neo4j 会从提供程序用户信息端点获取组。

有效值

一个布尔值。

默认值

false

dbms.security.oidc.<provider>.get_username_from_user_info

表 278. dbms.security.oidc.<provider>.get_username_from_user_info

描述

启用后,Neo4j 会从提供程序用户信息端点获取用户名。

有效值

一个布尔值。

默认值

false

dbms.security.oidc.<provider>.issuer

表 279. dbms.security.oidc.<provider>.issuer

描述

ID 令牌中 iss 声明的预期值。如果未提供,Neo4j 将尝试从 well_known_discovery_uri 中发现它。

有效值

一个字符串。

dbms.security.oidc.<provider>.jwks_uri

表 280. dbms.security.oidc.<provider>.jwks_uri

描述

身份提供程序的 JWK 公钥集的位置。如果未提供,Neo4j 将尝试从 well_known_discovery_uri 中发现它。

有效值

一个 URI

dbms.security.oidc.<provider>.params

表 281. dbms.security.oidc.<provider>.params

描述

该映射是以分号分隔的键值对列表。例如:k1=v1;k2=v2。用户至少应该提供

  client_id: the SSO Idp client idenfifier.
  response_type: code if auth_flow is pkce or token for implicit auth_flow.
  scope: often containing a subset of 'email profile openid groups'.

例如:client_id=my-client-id;response_type=code;scope=openid profile email

有效值

简单的键值映射模式 k1=v1;k2=v2。必需的键选项为:[scope, client_id, response_type]

默认值

{}

dbms.security.oidc.<provider>.token_endpoint

表 282. dbms.security.oidc.<provider>.token_endpoint

描述

OIDC 令牌端点。如果未提供,Neo4j 将尝试从 well_known_discovery_uri 中发现它。

有效值

一个 URI

dbms.security.oidc.<provider>.token_params

表 283. dbms.security.oidc.<provider>.token_params

描述

令牌端点所需的可选查询参数。该映射是以分号分隔的键值对列表。例如:k1=v1;k2=v2。如果令牌端点需要 client_secret,则此参数应包含 client_secret=super-secret

有效值

简单的键值映射模式 k1=v1;k2=v2

默认值

{}

dbms.security.oidc.<provider>.user_info_uri

表 284. dbms.security.oidc.<provider>.user_info_uri

描述

身份提供程序的用户信息 URI。

有效值

一个 URI

dbms.security.oidc.<provider>.well_known_discovery_uri

表 285. dbms.security.oidc.<provider>.well_known_discovery_uri

描述

用于获取身份提供程序设置的 OpenID Connect 发现端点。如果未提供,则应存在 issuerjwks_uriauth_endpoint。如果 auth_flow 为 pkce,也应提供 token_endpoint

有效值

一个 URI

dbms.security.procedures.allowlist

表 286. dbms.security.procedures.allowlist

描述

要加载的程序列表(逗号分隔)。该列表可以包含完全限定的程序名称,以及带有通配符 * 的部分名称。默认值 (*) 加载所有程序。如果未指定值,则不会加载任何程序。

有效值

逗号分隔的列表,其中每个元素都是一个字符串。

默认值

*

dbms.security.procedures.unrestricted

表 287. dbms.security.procedures.unrestricted

描述

允许完全访问数据库的程序和用户定义函数列表(逗号分隔)。该列表可以包含完全限定的程序名称,以及带有通配符 * 的部分名称。请注意,这使这些程序能够绕过安全性。请谨慎使用。

有效值

逗号分隔的列表,其中每个元素都是一个字符串。

默认值

dbms.security.require_local_user

表 288. dbms.security.require_local_user

描述

此设置控制外部身份验证是否必须创建本地用户。如果设置为默认值 (false),则无需创建用户即可通过外部身份验证提供程序进行身份验证。如果设置为 true,则必须先创建代表该外部用户的用户,然后才能成功进行身份验证。
外部用户必须显式映射到本地用户。有关详细信息,请参阅 用户身份验证提供程序
注意:此设置仅适用于内置身份验证提供程序(LDAP、SSO/OIDC)。插件身份验证无法验证本地用户是否存在,因此无法确保此设置。

有效值

一个布尔值。

默认值

false

dbms.security.tls_reload_enabled

表 289. dbms.security.tls_reload_enabled

描述

启用通过调用程序动态重新加载 TLS 配置和证书的功能。

有效值

一个布尔值。

默认值

false

dbms.security.allow_oidc_credential_forwarding_enabled

表 290. dbms.security.allow_oidc_credential_forwarding_enabled

描述

当设置为 true 时,允许远程数据库别名转发 OIDC 凭据以在远程 Neo4j DBMS 上进行身份验证。当设置为 false 时,不允许将 OIDC 凭据转发到远程 DBMS。依赖此方法的现有别名仍保持定义状态,但在启用此设置之前无法用于连接。

有效值

一个布尔值。

默认值

false

dbms.netty.ssl.provider

表 291. dbms.netty.ssl.provider

描述

Netty SSL 提供程序。

有效值

[JDK, OPENSSL, OPENSSL_REFCNT] 之一。

默认值

JDK

服务器目录设置

服务器目录设置可用于更改 Neo4j 文件的默认位置。有关更多信息,请参阅 默认文件位置

server.directories.cluster_state

表 292. server.directories.cluster_state

描述

用于保存包括 Raft 日志在内的集群状态的目录。

有效值

路径。如果是相对路径,则从 server.directories.data 解析。

默认值

cluster-state

server.directories.configuration

表 293. server.directories.configuration

描述

配置目录的根位置。

有效值

路径。如果是相对路径,则从 server.directories.neo4j_home 解析。

默认值

conf

server.directories.data

表 294. server.directories.data

描述

数据目录的路径。您不得配置多个 Neo4j 安装以使用相同的数据目录。

有效值

路径。如果是相对路径,则从 server.directories.neo4j_home 解析。

默认值

data

server.directories.dumps.root

表 295. server.directories.dumps.root

描述

Neo4j 将存储数据库转储的根位置,在删除所述数据库时可以选择性地生成这些转储。

有效值

路径。如果是相对路径,则从 server.directories.data 解析。

默认值

dumps

server.directories.import

表 296. server.directories.import

描述

设置与 Cypher LOAD CSV 子句一起使用的文件 URL 的根目录。这应该设置为相对于 Neo4j 安装路径的目录,从而将访问权限限制为仅该目录及其子目录中的文件。例如,值 "import" 将仅启用对 'import' 文件夹内文件的访问。删除此设置将禁用该安全功能,允许导入本地系统中的所有文件。将其设置为空字段将允许访问 Neo4j 安装文件夹内的所有文件。

有效值

路径。如果是相对路径,则从 server.directories.neo4j_home 解析。

默认值

server.directories.lib

表 297. server.directories.lib

描述

lib 目录的路径。

有效值

路径。如果是相对路径,则从 server.directories.neo4j_home 解析。

默认值

lib

server.directories.licenses

表 298. server.directories.licenses

描述

licenses 目录的路径。

有效值

路径。如果是相对路径,则从 server.directories.neo4j_home 解析。

默认值

licenses

server.directories.logs

表 299. server.directories.logs

描述

logs 目录的路径。

有效值

路径。如果是相对路径,则从 server.directories.neo4j_home 解析。

默认值

logs

server.directories.metrics

表 300. server.directories.metrics

描述

CSV 文件的目标位置:一个目录的路径,将在其中写入每个报告字段的 CSV 文件。

有效值

路径。如果是相对路径,则从 server.directories.neo4j_home 解析。

默认值

metrics

server.directories.neo4j_home

表 301. server.directories.neo4j_home

描述

目录设置相对于此根目录进行解析。由服务器在启动时计算并设置。默认为当前工作目录。

有效值

绝对路径。

默认值

server.directories.plugins

表 302. server.directories.plugins

描述

数据库插件目录的位置。如果将包含数据库程序的已编译 Java JAR 文件放在此目录中,它们将被加载。

有效值

路径。如果是相对路径,则从 server.directories.neo4j_home 解析。

默认值

plugins

server.directories.run

表 303. server.directories.run

描述

run 目录的路径。此目录保存 Neo4j 的运行时状态,例如在后台运行时产生的 pidfile。pidfile 在启动 neo4j 时创建,在停止时删除。它可以放置在内存文件系统(如 tmpfs)上。

有效值

路径。如果是相对路径,则从 server.directories.neo4j_home 解析。

默认值

run

server.directories.script.root

表 304. server.directories.script.root

描述

Neo4j 将为已配置的数据库存储脚本的根位置。

有效值

路径。如果是相对路径,则从 server.directories.data 解析。

默认值

scripts

server.directories.transaction.logs.root

表 305. server.directories.transaction.logs.root

描述

Neo4j 将为已配置的数据库存储事务日志的根位置。

有效值

路径。如果是相对路径,则从 server.directories.data 解析。

默认值

transactions

服务器设置

服务器设置仅适用于特定服务器,并且可以在整个集群/DBMS 的配置文件之间有所不同。

server.backup.enabled

表 306. server.backup.enabled

描述

启用在线备份支持。

有效值

一个布尔值。

默认值

true

server.backup.exec_connector.command

表 307. server.backup.exec_connector.command

描述

为 ExecDataConnector 列表执行的命令

有效值

一个字符串。

默认值

server.backup.exec_connector.scheme

表 308. server.backup.exec_connector.scheme

描述

ExecDataConnector 将匹配的方案

有效值

逗号分隔的列表,其中每个元素都是一个字符串。

默认值

server.backup.listen_address

表 309. server.backup.listen_address

描述

备份服务器监听的网络接口和端口。

有效值

格式为 主机名:端口主机名:端口 的套接字地址。

默认值

127.0.0.1:6362

server.backup.advertised_address

表 310. server.backup.advertised_address

描述

备份服务器的公告地址。默认为默认公告地址与备份监听地址中定义的端口的组合。

有效值

套接字地址,格式为 hostname:port, hostname, 或 :port,即一个可访问的地址。如果缺失,则从 server.default_advertised_address 获取。

默认值

:0

server.backup.store_copy_max_retry_time_per_request

表 311. server.backup.store_copy_max_retry_time_per_request

描述

存储复制期间每个请求的最大重试时间。常规存储文件和索引在存储复制期间在单独的请求中下载。这配置了失败请求允许重新发送的最长时间。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

20m

server.config.strict_validation.enabled

表 312. server.config.strict_validation.enabled

描述

严格的配置验证将防止数据库在 neo4j 设置命名空间(例如 dbms.、cypher. 等)中指定了未知配置选项,或者配置被多次声明时启动。

有效值

一个布尔值。

默认值

true

server.databases.default_to_read_only

表 313. server.databases.default_to_read_only

描述

此实例上的任何数据库是否默认处于只读状态。如果 false,则可以使用 server.database.read_only 将各个数据库标记为只读。如果 true,则可以使用 server.databases.writable 将各个数据库标记为可写。

有效值

一个布尔值。

默认值

false

server.databases.read_only

表 314. server.databases.read_only

描述

防止写入查询的数据库列表。未包含在此列表中的数据库无论如何都可能处于只读状态,具体取决于 server.databases.default_to_read_only 的值。

有效值

一个以逗号分隔的集合,其中每个元素都是一个有效的数据库名称,仅包含字母字符、数字、点和连字符,长度在 3 到 63 个字符之间,以字母字符或数字开头,但不能以 system 名称开头。

默认值

server.databases.writable

表 315. server.databases.writable

描述

允许写入查询的数据库列表。未包含在此列表中的数据库无论如何都将允许写入查询,除非 server.databases.default_to_read_only 设置为 true

有效值

一个以逗号分隔的集合,其中每个元素都是一个有效的数据库名称,仅包含字母字符、数字、点和连字符,长度在 3 到 63 个字符之间,以字母字符或数字开头,但不能以 system 名称开头。

默认值

server.dynamic.setting.allowlist

表 316. server.dynamic.setting.allowlist

描述

允许动态更改的设置名称模式列表(逗号分隔)。该列表可以包含完整的设置名称,以及带有通配符 * 的部分名称。如果此设置留空,则所有动态设置更新都将被阻止。

有效值

逗号分隔的列表,其中每个元素都是一个字符串。

默认值

*

server.jvm.additional

表 317. server.jvm.additional

描述

附加的 JVM 参数。参数顺序可能很重要。要使用 Java 商业功能,解锁商业功能的参数必须先于配置值字符串中启用特定功能的参数。

有效值

一个或多个 JVM 参数。

默认值

有关 server.jvm.additional 默认值的详细信息,请参阅 neo4j.conf 文件 → server.jvm.additional 的默认值

server.panic.shutdown_on_panic

表 318. server.panic.shutdown_on_panic

描述

控制如果发生服务器紧急情况(不可恢复的错误),Neo4j 进程是关闭还是继续运行。服务器紧急情况发生后,可能会丢失大量功能。恢复全部功能将需要重启 Neo4j 进程。

有效值

一个布尔值。

默认值

true 2025.01 中更改

server.threads.worker_count

表 319. server.threads.worker_count

描述

Neo4j 工作线程的数量。此设置仅对 REST 有效,不会影响 bolt-server。它设置 neo4j-server 使用的 Jetty 服务器的工作线程数量。当您计划执行多个并发 REST 请求以从数据库获得更多吞吐量时,可以调整此选项。您的操作系统可能会强制执行低于此处指定的最大值的限制。可用处理器的数量,对于拥有超过 500 个处理器的机器,则为 500。

有效值

介于 144738 之间的整数。

默认值

server.unmanaged_extension_classes

表 320. server.unmanaged_extension_classes

描述

非托管扩展的 <classname>=<mount point> 逗号分隔列表。

有效值

一个以逗号分隔的列表,其中每个元素都是 <classname>=<mount point> 字符串。

默认值

server.windows_service_name

表 321. server.windows_service_name

描述

使用 neo4j install-service 安装时管理 Neo4j 的 Windows 服务的名称。仅适用于 Windows 操作系统。
注意:对于每个安装,这必须是唯一的。

有效值

一个字符串。

默认值

neo4j

事务设置

事务设置可帮助您管理数据库中的事务,例如事务超时、锁获取超时、并发运行的最大事务数等。有关更多信息,请参阅 管理事务并发数据访问

db.lock.acquisition.timeout

表 322. db.lock.acquisition.timeout

描述

应获取锁的最大时间间隔。零(默认)表示禁用超时。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

0s

db.shutdown_transaction_end_timeout

表 323. db.shutdown_transaction_end_timeout

描述

在允许启动的数据库关闭继续之前,等待正在运行的事务完成的最长时间。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

10s

db.transaction.bookmark_ready_timeout

表 324. db.transaction.bookmark_ready_timeout

描述

等待书签所代表的数据库状态的最长时间。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s),最小值为 1s

默认值

30s

db.transaction.concurrent.maximum

表 325. db.transaction.concurrent.maximum

描述

并发运行的最大事务数。如果设置为 0,则禁用限制。

有效值

一个整数。

默认值

1000

db.transaction.monitor.check.interval

表 326. db.transaction.monitor.check.interval

描述

配置事务监视器检查之间的时间间隔。确定监视器线程检查事务超时的频率。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

2s

db.transaction.sampling.percentage

表 327. db.transaction.sampling.percentage

描述

事务采样百分比。

有效值

介于 1100 之间的整数。

默认值

5

db.transaction.timeout

表 328. db.transaction.timeout

描述

事务应该完成的最大时间间隔。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

0s

db.transaction.tracing.level

表 329. db.transaction.tracing.level

描述

事务创建跟踪级别。

有效值

[DISABLED, SAMPLE, ALL] 之一。

默认值

DISABLED

server.http.transaction_idle_timeout

表 330. server.http.transaction_idle_timeout

描述

HTTP 服务器中空闲事务的超时时间。
注意:这与将使底层事务超时的 'db.transaction.timeout' 不同。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

30s

server.queryapi.transaction_idle_timeout

表 331. server.queryapi.transaction_idle_timeout

描述

查询 API 中空闲事务的超时时间。
注意:这与将使底层事务超时的 'db.transaction.timeout' 不同。

有效值

一个持续时间(有效单位为:ns, μs, ms, s, m, hd;默认单位为 s)。

默认值

1m

事务日志设置

事务日志保留尚未应用于存储文件的事务列表。这对于恢复是必要的。以下设置配置修剪操作后保留的事务日志数量以及事务日志文件的大小。

另请参阅 检查点设置

db.recovery.fail_on_missing_files

表 332. db.recovery.fail_on_missing_files

描述

如果 true,Neo4j 将在缺少事务日志文件时中止恢复。将其设置为 false 将允许 Neo4j 为现有的数据库创建新的空缺失文件,但数据库的完整性可能会受到损害。

有效值

一个布尔值。

默认值

true

db.tx_log.buffer.size

表 333. db.tx_log.buffer.size

描述

序列化事务日志时,它们将临时存储在字节缓冲区中,该缓冲区将在事务结束时或当缓冲区已满时的任何时刻被刷新。默认情况下,字节缓冲区的大小基于可用 CPU 的数量,最小缓冲区大小为 512KB。每多 4 个 CPU 将向缓冲区大小增加 512KB。在这种默认方案中,最大缓冲区大小为 4MB,考虑到在多数据库环境中每个数据库可以有一个事务日志编写器。例如,拥有 4 个 CPU 的运行时将具有 1MB 的缓冲区大小;拥有 8 个 CPU 的运行时将具有 1MB 512KB 的缓冲区大小;拥有 12 个 CPU 的运行时将具有 2MB 的缓冲区大小。

有效值

最小为 131072 的长整型。

默认值

db.tx_log.preallocate

表 334. db.tx_log.preallocate

描述

指定 Neo4j 是否应尝试提前预分配逻辑日志文件。它通过确保有足够的空间来容纳新生成的文件并避免文件级碎片来优化文件系统。

有效值

一个布尔值。

默认值

true

db.tx_log.rotation.retention_policy

表 335. db.tx_log.rotation.retention_policy

描述

指定 Neo4j 应保留逻辑事务日志以备份数据库的时间。例如,10 days 修剪仅包含早于 10 天的事务的逻辑日志。或者,100k txs 保留每个数据库中最新的 100k 个事务,并修剪任何较旧的事务。您可以选择性地为要保留的日志大小添加基于周期的限制。例如,2 days 1G 修剪仅包含早于 2 天或大于 1G 的事务的逻辑日志。

有效值

匹配模式 ^(true|keep_all|false|keep_none|(\d+[KkMmGg]?( (files|size|txs|entries|hours( \d+[KkMmGg]?)?|days( \d+[KkMmGg]?)?))))$ 的字符串(必须是 truekeep_allfalsekeep_none,或者格式为 <number><optional unit> <type> <optional space restriction>。有效单位为 KMG。有效类型为 filessizetxsentrieshoursdays。有效的可选空间限制是逻辑日志空间限制,例如 100M。例如,100M size 将限制磁盘上的逻辑日志空间为每个数据库 100MiB,200K txs 将限制每个数据库保留的事务数为 200,000)。

默认值

2 days 2G

db.tx_log.rotation.size

表 336. db.tx_log.rotation.size

描述

指定逻辑日志在什么文件大小时自动轮换。接受的最小值为 128 KiB。

有效值

字节大小(有效乘数为 BKiBKBKkBkbkMiBMBMmBmbmGiBGBGgBgbgTiBTBPiBPBEiBEB),最小值为 128.00KiB

默认值

256.00MiB

© . This site is unofficial and not affiliated with Neo4j, Inc.