一個 全球資料商店 會揭示儲存和載入資料的功能。
參閱「數據存取」了解有關數據結構、管理、錯誤處理等方面的深度指南。
排名的資料儲存不支援版本和標籤,因此 DataStoreKeyInfo 總是是 nil 對於在 OrderedDataStore 中的鑰匙。如果您需要版本和標籤協助,請使用 1> Class.DataStore1>。
概要
方法
返回指定資料存取中的鑰匙值,並且是 DataStoreKeyInfo 個實個體、實例。
- IncrementAsync(key : string,delta : number,userIds : Array,options : DataStoreIncrementOptions):Variant
增加鑰匙的值提供的數量(必須是整數)。
保留可用版本,同時移除指定的鑰匙。
設定資料存取對應的鑰鍵的數據存取值。
更新鑰鍵的值,以從指定的回撥函數中的新值。
屬性
方法
GetAsync
此函數將提供的鑰匙的最新值和一個 DataStoreKeyInfo 個體、實例例返回。如果鑰匙不存在或最新版本已標為已刪除,兩個返回值都會是 nil 。
鑰匙在第一次已讀取後在本地保存 4 秒。在這些 4 秒內的 GlobalDataStore:GetAsync() 呼叫會返回資料從隨機化存取。鑰匙的修改在 GlobalDataStore:SetAsync() 或 GlobalDataStore:UpdateAsync() 後應用即可立即重新啟動 4 秒
要取得特定版本,例如版本之前的版本,請使用 DataStore:GetVersionAsync()。
參數
值要求的關鍵名稱。如果 DataStoreOptions.AllScopes 設為 true 在存取資料存通過 Class.DataStoreService:GetDataStore() 時,此關鍵名必須與原始關鍵名相連,如 " scope/key" 中的 "關鍵名".
返回
值與鑰匙的數值和 DataStoreKeyInfo 實例,包括版本號、日期和時間版本創建時,以及可以恢復的功能。
IncrementAsync
此函數會增加鑰匙的值提供的數量(必須是整數)。
OrderedDataStore 不支援版本管理,因此在 OrderedDataStore 鍵上呼叫此方法會覆蓋當前值,並使以前版本無法存取。
參數
值更新的關鍵名稱。如果 DataStoreOptions.AllScopes 設為 true 在存取資料存存庫時,此關鍵名必須與原始範圍相同,如果 DataStoreService:GetDataStore() 設為 true ,此關鍵名必須與原始範圍相同。
數量增加目前值。
(可選) DataStoreIncrementOptions 實例,可以結合多個額外參數作為自訂標籤,並允許未來擴展。
返回
以提供的鑰匙更新資料存庫中的值。
RemoveAsync
此功能將指定的鑰匙標為已刪除,並且在建立新的 "tombstone" 版本的鑰鍵之前返回最新版本。
鑰匙被移除過此功能後, GlobalDataStore:GetAsync() 呼叫為鑰匙將會返回 nil 。 較舊版本的鑰匙仍可以透過 DataStore:ListVersionsAsync() 和 1> Class.DataStore:GetVersionAsync()1> 來存取。 假設鑰匙未過
OrderedDataStore 不支援版本管理,因此在 RemoveAsync() 上呼叫 OrderedDataStore 鍵將永久刪除。
已移除的對象將在 30 天後永久刪除。
如果以前的值已經刪除過 GlobalDataStore:RemoveAsync() 或 DataStore:RemoveVersionAsync() ,則將返回 nil ,1> nil1> 值和 4> Class.DataStoreKeyInfo4> 值。
參數
要移除的鑰匙名稱。如果 DataStoreOptions.AllScopes 設為 true 在使用資料存取服務過程中通過 DataStoreService:GetDataStore() 時,此鑰匙名稱必須與原始範圍相同。
返回
刪除前的數據存取值和含有版本號、日期和時間、版本創建時間和功能的 DataStoreKeyInfo 實例。
SetAsync
此函數設定最新值,UserIds,以及對指定鍵的元數據。
資料存取中的值會版本化,這意味著 GlobalDataStore:SetAsync() 每次呼叫時會創建新版本。過去的版本可以通過 DataStore:ListVersionsAsync() / DataStore:GetVersionAsync() 查看,在 30 天內永久刪除。
OrderedDataStore 不支援版本管理,因此在 OrderedDataStore 鍵上呼叫此方法會覆蓋目前值,使以前版本無法使用。
必須總是以值更新元數據定義,即使沒有更改現有值;否則,現有值將遺失。
任何存在在資料存取中的字串必須為有效 UTF-8 。在 UTF-8 中,大於 127 的值為多個字符串的代碼點,因此單個大於 127 的值無效 UTF-8 和 GlobalDataStore:SetAsync() 嘗試將無法正常執行。
設定與更新
GlobalDataStore:SetAsync() 最適合快速更新特定鑰鍵,並且只會計算寫入限制。 但是,如果兩個服務器嘗試在同一時間設定相同的鑰匙值,可能會導致資料不一致。
參數
值應該設設定的鑰匙名稱。如果 DataStoreOptions.AllScopes 設置為 true 在存取資料存存庫時通過 DataStoreService:GetDataStore() 時,此鑰匙名稱必須與原始範圍相同。在 "鑰匙/鑰匙" 中,這鑰匙名稱必須與原始範圍相同。
數據存取鑰匙的值。
Class.Player.UserId|UserIds 桌子,強烈建議以協助跟蹤/移除 GDPR。
(可選) DataStoreSetOptions 實例,可以在鍵匙上允許指定元數。
返回
創建新版本的版本識別器。它可以用於使用 GetVersionAsync() 或 RemoveVersionAsync() 來取回鑰匙資訊。
UpdateAsync
此功能從數據存取中取回鑰匙的值和元數據,並使用指定的回潮函數更新它。如果回潮函數返回 nil,寫入操作將取消,值將保持不變。
如果更新成功,值的新版本將會創建,舊版本將會保留在 DataStore:ListVersionsAsync() 和 DataStore:GetVersionAsync() 中。
OrderedDataStore 不支援版本管理,因此在 OrderedDataStore 鍵上呼叫此功能會覆蓋目前值,使以前版本無法使用。
在其他遊戲服務器在取得鑰匙的當前值和設定鍵鍵值之間的短時間內更新鑰匙時,GlobalDataStore:UpdateAsync() 會重新呼叫函數,並且 discard 結果的上一個呼叫。功能將在需要的時間內重複使用直到資料儲
任何存在在資料存取中心的字串必須為有效 UTF-8 。在 UTF-8 中,值大於 127 僅用於編碼多個字節代碼點,因此單一的值大於 127 將無效 UTF-8 和 GlobalDataStore:UpdateAsync() 嘗試將無法執行。
設定與更新
GlobalDataStore:SetAsync() 最適合快速更新特定鑰鍵,並且只會計算寫入限制。 但是,如果兩個服務器嘗試在同一時間設定相同的鑰匙值,可能會導致資料不一致。
回調函數
回潮函數接受兩個參數:
- 更新前的鑰匙值。
- DataStoreKeyInfo 實例,包含最新版本資訊 (此參數可以忽略,如果沒有使用元數據).
回合內,回呼函數會返回最多三個值:
- 鍵的新值。
- Class.Player.UserId|UserIds 以與鑰鍵對應。 Class.DataStoreKeyInfo:GetUserIds() 應返回,否則所有現有 ID 將被清除。
- 一個 Lua 表包含與鑰鍵關聯的資料。 DataStoreKeyInfo:GetMetadata() 應該不會發生變更,否則所有的現有資料都會清除。
如果回調返回 nil ,而不是,目前伺服器將停止嘗試更新鑰鍵。
回潮函數無法產生,所以不要包含像 Library.task.wait() 這樣的呼叫。
參數
值更新的關鍵名稱。如果 DataStoreOptions.AllScopes 設為 true 在存取資料存存庫時,此關鍵名必須與原始範圍相同,如果 DataStoreService:GetDataStore() 設為 true ,此關鍵名必須與原始範圍相同。
變形功能,可以將當前值和 DataStoreKeyInfo 作為參數,並且以新值和可選 UserIds 和標籤返回。
返回
入值在資料存取中使用鑰匙和 DataStoreKeyInfo 實例,包括版本號、日期和時間版本創建時,以及可以恢復的功能。