用途:用于 Roblox 数据持久化、跨服共享状态与配额感知协调的设计指导。适用任务包括:设计玩家存档、全局配置类记录等 DataStoreService 用法;选择标准数据存储与有序数据存储;设计存档负载结构、schema 版本与迁移;决定何时使用 SetAsync()、UpdateAsync()、IncrementAsync() 或版本 API;用 MemoryStoreService 设计临时跨服系统;在内存存储队列、排序映射与哈希映射之间选择;用 MessagingService 协调多服务器;处理限流、请求预算、重试、退避、争用与可观测性。
主要能力与决策规则:持久跨会话数据用标准数据存储;仅当值为数值且需求是持久排名或排序检索时用有序数据存储;优先每个持久键存一个相关对象;多服务器写同一键或新值依赖当前值时优先 UpdateAsync();频繁、临时或协调导向的共享数据用内存存储;键值查找与高扇出用哈希映射;需要排序或按排序键范围读取用排序映射;有序工作处理、匹配队列或领取并移除流程用队列;MessagingService 仅用于短期广播信号、通知或唤醒协调,不作为持久记录系统。
用法要点:先分类状态(跨会话持久、临时跨服、仅广播);选择最窄合适的原语;持久存档定义稳定 schema,值内加入版本字段,迁移放在加载时或加载后首次写入;键、scope、存储名保持简短可预测;写入需考虑并发,回调确定性且不 yield,返回 nil 中止无效更新;读取需注意 GetAsync() 有短时本地缓存;把配额纳入设计,批量合并持久数据;内存存储 TTL 尽量短,处理后及时移除队列与排序映射项;网络调用用 pcall() 包裹,瞬时失败用指数退避并加抖动;可观测性关注请求数、限流与配额使用;消息需假设延迟或重复,处理器要安全。
适用场景:玩家档案保存、全时段金币排行榜、匹配池、带排名的跨服拍卖板、按服务器 id 的临时房间注册表等。
限制:不用于远程事件安全、客户端到服务器验证或一般玩法网络;不涉及 OAuth、API key 或 Open Cloud 认证;不做数据服务之外的引擎 API 查找。若任务混合越界内容,只回答数据服务部分。
参考文件:references/data-stores-guides.md、data-store-best-practices.md、versioning-listing-caching-limits-and-observability.md、memory-stores-guides.md、memory-store-best-practices-limits-and-observability.md、cross-server-messaging.md、data-stores-vs-memory-stores-comparison.md。