如何通过 Docker 或 arangojs 在 ArangoDB 中启用缓存?

How to enable caching in ArangoDB via Docker or arangojs?

我想在 ArangoDB 中启用缓存,在我的应用程序启动时自动启用。

我正在使用 docker-compose 来启动整个过程,但显然没有简单的参数来启用 ArangoDB 官方图像中的缓存。

根据doc/docker-entrypoint-initdb.d/中的所有文件都在容器启动时执行。所以我添加了一个带有该代码的 js 文件:

require('@arangodb/aql/cache').properties({mode: 'on'});

它确实执行了,但似乎没有启用缓存(从我在容器中看到的arangosh)。

我的应用是一个使用arangojs的JS应用,所以如果我能这样做,我也很高兴。

谢谢!

根据 performance and server config 文档,您可以通过多种方式启用缓存。

您将 require("@arangodb/aql/cache").properties({ mode: "on" }); 添加到 /docker-entrypoint-initdb.d/ 目录中的 .js 文件的方法应该可行,但请留意日志。您可能需要使用 different driver(日志、系统日志等)重定向日志输出以查看发生了什么。确保通过 arangosh 运行 命令以查看它是否有效。

如果那是一个半身像,您可能想看看是否有一种方法可以在 运行 时间传递参数(例如 --query.cache-mode on)。不幸的是,我不使用 Docker Compose,所以我不能在这里给你直接的建议,但可以试试 -e QUERY.CACHE-MODE=ON

如果没有办法传递参数,那么你可以修改配置文件:/etc/arangodb3/arangod.conf.

并且不要忘记用于系统管理的 REST API 方法。您可以通过单击 Support -> Rest API -> AQL.

在 Web UI 中访问 AQL 配置(查看和更改)

请记住一件事 - 我不确定缓存设置是全局的还是绑定到特定数据库。查看多个数据库(包括 _system)上的配置以测试设置。