跳至正文
版本:bleeding-edge 🩸

持久化数据

如何使用内置系统从磁盘存储和检索持久数据。

在 nanos world 中,可以使用简单的函数从磁盘存储和检索数据。

提示

持久化数据可以同时存储在客户端服务器

文件格式

持久化数据会自动以 TOML 格式存储在 Package/.data/ 文件夹(服务器端和客户端)中的 PersistentData.toml 文件中。

只有当你调用 Package.SetPersistentData() 时才会创建此文件。

存储与检索数据

所有 PersistentData 文件在包加载时自动加载并存储在内存中。 你可以使用 Package.GetPersistentData() 轻松访问整个文件。

要存储数据,你需要传递一个 key 值,该值会将 any lua 值存储在该键中。

示例

local my_table = {
my_id = 123,
my_data_02 = "data"
}

Package.SetPersistentData("awesome_table", my_table)

-- PersistentData.toml 将为:
-- awesome_table = { my_id = 123, my_data_02 = "data" }

你还可以使用点号表示法在表格中设置单个值:

Package.SetPersistentData("awesome_table.my_data_02", "another data")

-- PersistentData.toml 将为:
-- awesome_table = { my_id = 123, my_data_02 = "another data" }

然后检索数据:

local my_table = Package.GetPersistentData().awesome_table

Console.Log(my_table.my_id)

-- 将会打印:
-- 123