neo4j.conf 文件

neo4j.conf 文件是 Neo4j 中配置设置的主要来源,其中包含配置设置键到值的映射。不同 Neo4j 配置中 neo4j.conf 文件的位置列在 默认文件位置 中。

neo4j.conf 文件中的大多数配置设置直接应用于 Neo4j 本身,但也有一些与 Neo4j 运行的 Java 运行时 (JVM) 相关的其他设置。有关更多信息,请参阅 JVM 特定配置设置。许多配置设置也由 neo4j 启动器脚本使用。

neo4j.conf 约定

neo4j.conf 文件中的语法遵循以下约定

  • 等号 (=) 将配置设置键映射到配置值。

  • 以井号 (#) 开头的行被视为注释。

  • 不支持尾部注释。

  • 空行被忽略。

  • neo4j.conf 中配置设置会覆盖任何默认值。如果你想用自定义值修改默认值,则必须明确列出默认值以及新值。

  • 配置设置没有排序。

  • 默认情况下,配置设置启用了严格验证。如果 neo4j.conf 文件包含 拼写错误错误信息重复项 (除了 server.jvm.additional),它会阻止 Neo4j 启动。如果你为 server.jvm.additional 设置了多个值,每个设置值都会向 java 启动器添加另一个自定义 JVM 参数。

    要禁用严格验证,请设置 server.config.strict_validation.enabled=false

  • 默认情况下,字符编码被假定为 ISO 8859-1。从 Neo4j 4.8 开始,可以通过设置环境变量 `NEO4J_CONFIG_FILE_CHARSET` 来覆盖它,例如,设置为 `utf8`。

配置设置

一般概要

Neo4j 配置设置具有以下一般概要

<前缀>.<范围>.<组件>…​.<组件>.<名称>

前缀

前缀保留用于表示两种特殊情况(大多数设置没有前缀)

  • initial — 仅在初始化期间使用但之后会被忽略的设置。例如,initial.server.mode_constraintinitial.dbms.default_database 等等。

  • internal — 该前缀替换了先前版本中使用的术语 unsupportedexperimental。此命名空间专用于内部使用的功能,可能在未经通知的情况下发生更改。

范围

所有配置设置都属于以下其中一个范围,其行为不同

  • db 设置可以在每个数据库之间变化,但必须在集群/DBMS 中的所有配置文件中保持一致。

  • dbms 设置必须在集群/DBMS 中的所有配置文件中保持一致。

  • server 设置仅适用于特定服务器,并且可以在集群/DBMS 中的配置文件之间变化。

  • browser 设置仅适用于 Neo4j 浏览器。

  • client 设置仅适用于客户端。

    在 Neo4j 5 中,fabric 范围不再可用。neo4j.conf 文件中 fabric 命名空间标识的所有配置设置都移到了 system 数据库中。Cypher 表面已扩展以支持 Fabric 配置。

    有关更多信息,请参阅 复合数据库

组件

组件命名空间用于对影响相似系统的设置进行分组。

名称

设置的名称。它可能包含常见的动词和单位模式,例如 sizeenabled 等等。单词之间用下划线隔开。

有关 Neo4j 配置设置的完整参考,请参阅 配置设置

JVM 特定配置设置

Java 虚拟机 (JVM) 是一种虚拟机,使计算机能够运行 Java 程序和用其他语言编写的程序,这些程序也被编译为 Java 字节码。Java 堆是 Java 程序对象所在的内存区域。根据 JVM 实现的不同,JVM 堆的大小通常决定虚拟机执行 垃圾回收 的方式和持续时间。

表 1. JVM 特定设置
设置 描述

server.memory.heap.initial_size

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

server.memory.heap.max_size

设置 JVM 的最大堆大小。默认情况下,最大 JVM 堆大小是根据可用系统资源计算的。

server.jvm.additional

设置 JVM 的附加选项。这些选项以字符串形式设置,并且可能因 JVM 实现而异。

如果你想很好地控制系统行为,建议将堆大小参数设置为相同的值,以避免不必要的完全垃圾回收暂停。

列出当前活动设置

你可以使用 SHOW SETTINGS 列出当前活动配置设置及其值。

示例 1. 列出当前活动配置设置
SHOW SETTINGS
YIELD name, value
WHERE name STARTS WITH 'server.default'
RETURN name, value
ORDER BY name
LIMIT 3;
+---------------------------------------------------+
| name                                | value       |
+---------------------------------------------------+
| "server.default_advertised_address" | "localhost" |
| "server.default_listen_address"     | "localhost" |
+---------------------------------------------------+

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