Roblox 提供了幾種數據存儲選擇。每種存儲選項都有其優缺點,適用於不同的使用案例。下表總結了可用的選項並提供了與標準網路服務的最接近比較點。
| 服務 | 持久性 | 範圍 | 遊戲內存取 | 雲端比較 |
|---|---|---|---|---|
| 資料儲存 | 永久 | 跨伺服器 | 可讀寫 | NoSQL 資料庫 |
| 記憶體儲存 | 最長 45 天 | 跨伺服器 | 可讀寫 | 內存快取 |
| 配置 | 永久 | 跨伺服器 | 只可讀 | 應用程序配置和功能標誌 |
| 秘密儲存 | 永久 | 跨伺服器 | 只可讀 | 秘密管理 |
| Luau 內存 | 會話持續時間 | 單個伺服器 | 可讀寫 | 伺服器 RAM |
何時使用資料儲存
DataStoreService 儲存需要在會話之間持久存在的長期數據,例如用戶進度或物品清單。資料儲存在每個遊戲中都是一致的,因此遊戲內的每個伺服器都可以訪問和更改相同的數據。資料儲存有兩種類型:標準和排序。
標準資料儲存 可以儲存如數字、字串和不需要以排名或排序的表格的數據。它們以鍵值對的方式儲存數據;每個條目都以其資料儲存中唯一的鍵進行儲存,您可以檢索、更新或刪除。更多信息,請參見 資料儲存。
排序資料儲存 僅能儲存數字。每個條目都以其資料儲存中唯一的鍵進行儲存,您可以檢索、更新或刪除。您可以按數字對這些數據進行排名和排序,並根據儲存的數值以升序或降序檢索。更多信息,請參見 排序資料儲存。
| 標準資料儲存 | 排序資料儲存 | |
|---|---|---|
| 數據類型 | 數字、字串、布林值和表格。 | 僅限數字。 |
| 常見使用情況 | 用戶進度、物品清單和遊戲設置。 | 歷久彌新的持久排名系統和排行榜。與記憶體儲存中的排行榜不同,這個排行榜數據是永久的。 |
| 過去版本備份 | 自動管理您數據的過去版本,持續 30 天。 | 不管理您數據的過去版本。 |
何時使用記憶體儲存
MemoryStoreService 是一項高吞吐量和低延遲的服務,儲存需要頻繁更新或訪問的臨時數據,如全球排行榜或配對隊列。使用記憶體儲存,遊戲內的每個伺服器都可以快速且頻繁地訪問和更改相同的數據。記憶體儲存中的數據在一定時間後過期,最多可達 45 天。
如果您需要快速讀取(而不是寫入)少量值,則 配置 是更好的選擇。與頻繁訪問單個鍵或分區相比,記憶體儲存的性能不如配置。
雖然記憶體儲存儲存的是臨時數據,但它們也支持像全球市場這樣的永久功能。市場是永久的,但其中出售的物品有過期日期。
| 記憶體儲存 | |
|---|---|
| 數據類型 | 不需要持久超過 45 天的數字、字串、布林值和表格。 |
| 常見使用情況 | 基於技能的配對、多人遊戲的比賽狀態。 |
| 每日和每月的排行榜。 |
何時使用配置
配置 允許您在不重新啟動伺服器的情況下實時更新遊戲內變數。它們非常適合功能標誌以及您希望隨時間進行調整或 實驗 的任何遊戲內值。
- 配置在遊戲內是只讀的—您在創作者中心或 Roblox Studio 中進行修改—因此它們不適用於與資料儲存和記憶體儲存相同的用例。
- 配置的更改在五分鐘內部署;數據和記憶體儲存的更改則更即時。
| 配置 | |
|---|---|
| 數據類型 | 數字、字串、布林值和 JSON 對象。 |
| 常見使用情況 | 啟用新地城、禁用限時遊戲模式、開始假日活動。 |
| 敵人健康、武器傷害、物品價格、遊戲倍數、歡迎消息。 |
何時使用秘密儲存
使用 秘密儲存 來儲存您用於與外部服務進行身份驗證的任何 API 金鑰、密碼和訪問令牌。在資料儲存中儲存這些值會帶來不必要的安全風險。
| 秘密儲存 | |
|---|---|
| 數據類型 | 字串。 |
| 常見使用情況 | 用於分析或音樂服務的 API 金鑰、密碼和訪問令牌。 |
何時在 Luau 中使用內存儲存
在 Luau 中使用內存儲存來儲存需要以最小延遲訪問的臨時數據,而不需要進行外部服務調用的成本。這種存儲內置於 Luau 中,無需設置。
| Luau 中的內存儲存 | |
|---|---|
| 數據類型 | 數字、字串、布林值和表格。 |
| 常見使用情況 | 僅對單個伺服器會話相關且不需要持久的數據,例如狀態效果或用戶離開遊戲時重置的臨時分數。 |
| 頻繁變化的值,例如計數器、計時器、狀態標誌或生命值條。 | |
| 驅動遊戲邏輯的數據,需要立即訪問,例如臨時變數或敵人的當前生命值。 |