要存储数据,您可以使用 数据存储 与 DataStoreService 或 磁盘存储 与 MemoryStoreService 。
或者,你也可以使用 Luau 类型和变量来 在 Luau 中存储数据,而不使用数据或内存存储服务。
何时使用数据存储
DataStoreService 存储需要在会话之间持续的长期数据,例如用户进度或库存物品。数据存储在每个体验中都是一致的,因此每个体验内的每个服务器都可以访问并更改相同的数据。数据存储有两种类型:标准和订阅。 标准数据存储 可以存储不需要排名或排序的数据,例如数字、字符串和表。这些数据被存储为键值对,每个入口都被存储在其数据存储中的独特键下,您可以查询、更新或删除。 排序的数据存储 只能存储数字。每个入口都存储在其数据存储中的独特键下,您可以查询、更新或删除。您可以按数字排序并排序这些数据,并根据存储的数值在上升或下降顺序中检索它们。了解更多信息,请参阅排序数据存储。
标准数据存储 | 排序数据存储 | |
---|---|---|
数据类输入 | 数字、字符串、布林和表。 | 仅数字。 |
常见使用案例 | 用户进度、库存物品和体验设置。 | 始终存在的排名系统和排行榜。与内存存储中的排行榜不同,这个排行榜数据是永久的。 |
过去版本备份 | 自动管理 30 天内您数据的以前版本。 | 不管理您数据的以前版本。 |
何时使用内存存储
MemoryStoreService 是一个高吞吐量和低延迟服务,存储需要频繁更新或访问的临时数据,例如全球排行榜或匹配队列。使用内存存储,每个体验中的每个地方的每个服务器都可以快速频繁地访问和更改相同的数据。在内存存储中的数据在一定时间后过期,最长可达 45 天。
虽然内存存储库存储临时数据,但它们也支持永久功能,例如全球市集。市场是永久的,但里面的销售物品有一个过期日期。
记忆存储 | |
---|---|
数据类输入 | 不需要持续超过 45 天的数字、字符串、布尔和表,以及不需要持续超过 45 天的表。 |
常见使用案例 | 基于技能的匹配、多人游戏的匹配状态、每日和每月排行榜。 |
何时在 Luau 中使用内存存储
您可以在 Luau 中使用内存存储来存储需要以最小延迟访问的临时数据,而不需要为外部服务调用数据存储或内存存储提供费用。由于内存存储已经在 Lua 中默认构建,因此不需要额外的步骤来设置内存存储。
Luau 内存存储 | ||
---|---|---|
数据类型 | 数字、字符串、布尔和表。 | |
常见使用案例 | 仅适用于单个服务器会话的数据,您可以立即更新,而不需要担心持久性。 | 例如:激活的增益、临时积分和持续的任务进度,用户离开体验时重置。 |
频繁更改的值,例如计数器、计时器或状态旗。 | 例子:用户的生命条,每次点击都会更新。 | |
避免对高频操作在大型活跃体验中的限速限制。: | 例子:数十个用户与同一个对象互动的体验。 | |
驱动游戏逻辑的数据,例如临时变量或需要快速访问而不需要延迟的强化状态。: | 例如:用户当前的攻击状态或敌人当前的生命值,需要立即访问且无需涉及调用外部服务(例如数据或内存存储)所带来的延迟。 | |
仅在单个服务器内重要的多人互动。 | 例如:共享的目标在合作任务体验中。 |