本地文件系统上下文存储

0.19 版新增

本地文件系统上下文存储将上下文数据保存在本地文件中。默认情况下,它会在内存中缓存上下文数据,允许同步和异步访问。

如果缓存模式被禁用,存储将只支持异步访问。

配置

要创建文件存储,可以使用以下配置。

contextStorage: {
   default: {
       module:"localfilesystem",
       config: {
           // see below
       }
   }
}

选项

文件存储可以接受以下配置选项

选项 描述
dir 存储 base 目录的目录。默认值:用户目录,~/.node-red
base 存储上下文数据的基本目录。默认值:"context"
cache 是否在内存中缓存上下文。默认值:true
flushInterval 如果启用了缓存,写入存储的最小间隔(秒)。默认值:30

一个 file 上下文存储的默认配置是使用目录 ~/.node-red/context,启用缓存并每 30 秒写入存储一次。

flushInterval 的作用是最大限度地减少底层存储的磨损,例如树莓派的 SD 卡。请注意,如果 Node-RED 意外终止,任何尚未刷新的数据都将丢失。

实施细节

此上下文存储为每个上下文范围使用一个单独的文件。在顶层,每个流范围有一个目录,全局范围有一个目录。在每个流范围目录中,有一个包含流范围的文件 flow.json,以及每个节点上下文的文件。

   $HOME/.node-red/context
     ├── global
     │     └── global.json
     ├── <id of Flow 1>
     │     ├── flow.json
     │     ├── <id of Node a>.json
     │     └── <id of Node b>.json
     └── <id of Flow 2>
           ├── flow.json
           ├── <id of Node x>.json
           └── <id of Node y>.json