GlobalDataStore

Veraltete anzeigen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Nicht erstellbar
Nicht repliziert

Ein GlobalDataStore stellt Funktionen für das Speichern und Laden von Daten für die DataStoreService bereit.

Siehe Datenspeicher für einen ausführlichen Leitfaden über Datenstruktur, -management, Fehlerbehandlung usw.

Sortierte Datenlagern unterstützen keine Versionskontrolle und Metadaten, so ist DataStoreKeyInfo immer nil für Schlüssel in einem OrderedDataStore .Wenn Sie Versionierung und Supportbenötigen, verwenden Sie ein DataStore.

Zusammenfassung

Methoden

Eigenschaften

Methoden

GetAsync

Angehalten

Diese Funktion gibt den neuesten Wert des bereitgestellten Schlüssels und eine DataStoreKeyInfo Instanz zurück.Wenn der Schlüssel nicht existiert oder die neueste Version als gelöscht markiert wurde, werden beide Rückgabewerte nil sein.

Schlüssel werden lokal für 4 Sekunden nach der ersten gelesenzwischengespeichert.Ein GlobalDataStore:GetAsync() Anruf innerhalb dieser 4 Sekunden gibt einen Wert aus dem Cache zurück.Änderungen am Schlüssel durch GlobalDataStore:SetAsync() oder GlobalDataStore:UpdateAsync() gelten sofort für den Cache und starten den 4-Sekunden-Timer neu.

Um eine bestimmte Version zu erhalten, wie z. B. eine Version vor der neuesten, verwende DataStore:GetVersionAsync().

Parameter

key: string

Der Schlüsselname, für den der Wert angefordert wird.Wenn DataStoreOptions.AllScopes bei der Zugriff auf den Datenstore durch DataStoreService:GetDataStore() auf wahr gesetzt wurde, muss dieser Schlüsselname mit dem ursprünglichen Umfang wie in "scope/key" vorangestellt werden.

Standardwert: ""
Standardwert: "nil"

Rückgaben

Der Wert des Eintrags im Datenlagers mit dem angegebenen Schlüssel und einer DataStoreKeyInfo, die die Versionsnummer, das Datum und die Uhrzeit enthält, in der die Version erstellt wurde, und Funktionen zum Abrufen von UserIds und Metadaten.

IncrementAsync

Variant
Angehalten

Diese Funktion erhöht den Wert eines Schlüssels um den angegebenen Betrag (beide müssen Zahlen sein).

Werte in GlobalDataStores sind versioniert wie in Versionierung beschrieben. OrderedDataStores unterstützt keine Versionskontrolle, so wird das Aufrufen dieser Methode auf einem bestellten Datenlagerschlüssel den aktuellen Wert mit dem erhöhten Wert überschreiben und frühere Versionen unzugänglich machen.

Parameter

key: string

Schlüsselname, für den der Wert aktualisiert werden soll.Wenn DataStoreOptions.AllScopes bei der Zugriff auf den Datenstore durch DataStoreService:GetDataStore() auf wahr gesetzt wurde, muss dieser Schlüsselname mit dem ursprünglichen Umfang wie in "scope/key" vorangestellt werden.

Standardwert: ""
delta: number

Betrag, um den aktuellen Wert um zu erhöhen.

Standardwert: 1
userIds: Array

(Optional) Ein Tabelle von UserIds mit dem Schlüssel zu verknüpfen.

Standardwert: "{}"

(Optional) DataStoreIncrementOptions Instanz, die mehrere zusätzliche Parameter als benutzerdefinierte Metadaten kombiniert und zukünftige Erweiterbarkeit ermöglicht

Standardwert: "nil"

Rückgaben

Variant

Der aktualisierte Wert des Eintrags im Datenstore mit dem angegebenen Schlüssel.

RemoveAsync

Angehalten

Diese Funktion markiert den angegebenen Schlüssel als gelöscht, indem eine neue "Grabstein"-Version des Schlüssels erstellt wird.Vorher gibt es die neueste Version vor der Entfernungsanruf zurück.

Nachdem ein Schlüssel über diese Funktion entfernt wurde, rufen GlobalDataStore:GetAsync() Anrufe für den Schlüssel zurück nil.Ältere Versionen des Schlüssels bleiben über DataStore:ListVersionsAsync() und DataStore:GetVersionAsync() zugänglich, vorausgesetzt, sie sind nicht abgelaufen.

OrderedDataStore unterstützt keine versionskontrolle, sodass das aufrufen von RemoveAsync() auf einem OrderedDataStore schlüssel es dauerhaft löschen wird.

Entfernte Objekte werden nach 30 Tagen permanent gelöscht.

Wenn die vorherigen Werte bereits über GlobalDataStore:RemoveAsync() oder DataStore:RemoveVersionAsync() gelöscht wurden, gibt die Funktion nil , nil für den Wert und DataStoreKeyInfo zurück.

Parameter

key: string

Schlüsselname zum Entfernen.Wenn DataStoreOptions.AllScopes bei der Zugriff auf den Datenstore durch DataStoreService:GetDataStore() auf wahr gesetzt wurde, muss dieser Schlüsselname mit dem ursprünglichen Umfang wie in "scope/key" vorangestellt werden.

Standardwert: ""

Rückgaben

Der Wert des Datenlagers vor der Löschung und eine DataStoreKeyInfo, die die Versionsnummer, das Datum und die Zeit enthält, in der die Version erstellt wurde, und Funktionen zur Abruf von UserIds und Metadaten.

SetAsync

Variant
Angehalten

Diese Funktion legt den neuesten Wert, UserIds , und Metadaten für den angegebenen Schlüssel fest.

Werte in GlobalDataStores sind versioniert wie in Versionierung beschrieben. OrderedDataStores unterstützt keine Versionskontrolle, so wird das Aufrufen dieser Methode auf einem bestellten Datenlagerschlüssel den aktuellen Wert überschreiben und frühere Versionen unzugänglich machen.

Metadaten-Definitionen müssen immer mit einem Wert aktualisiert werden, auch wenn es keine Änderungen am aktuellen Wert gibt; ansonsten geht der aktuelle Wert verloren.

Jede Zeiche, die in einem Datenlagerspeicher gespeichert wird, muss gültig sein UTF-8 .In UTF-8 werden Werte größer als 127 ausschließlich zur Verschlüsselung mehrerer Bytes verwendet, sodass ein einzelner Byte größer als 127 ungültig ist UTF-8 und der Versuch GlobalDataStore:SetAsync() wird fehlschlagen.

Setzen gegen Aktualisieren

GlobalDataStore:SetAsync() eignet sich am besten für ein schnelles Aktualisieren eines bestimmten Schlüssels und zählt nur gegen das Schreiblimit.Es kann jedoch zu Datenunzulänglichkeit führen, wenn zwei Server versuchen, dasselbe Schlüssel gleichzeitig zu setzen. GlobalDataStore:UpdateAsync() ist sicherer für die Verarbeitung mehrerer Serverversuche, da es den aktuellen Schlüsselwert (von jedem Server, der zuletzt aktualisiert wurde) liest, bevor es Änderungen vornimmt.Es ist jedoch etwas langsamer, da es vor dem Schreiben gelesen wird, und es zählt auch gegen das Lese- und Schreiblimit.

Parameter

key: string

Schlüsselname, für den der Wert festlegenwerden soll.Wenn DataStoreOptions.AllScopes bei der Zugriff auf den Datenstore durch DataStoreService:GetDataStore() auf wahr gesetzt wurde, muss dieser Schlüsselname mit dem ursprünglichen Umfang wie in "scope/key" vorangestellt werden.

Standardwert: ""
value: Variant

Der Wert, auf den der Schlüssel des Datenspeichers festgelegt wird.

Standardwert: ""
userIds: Array

Tabelle von UserIds, die stark empfohlen wird, um bei der GDPR-Verfolgung/Entfernung zu helfen.

Standardwert: "{}"

(Optional) DataStoreSetOptions Instanz, die die Metadatenspezifikation auf dem Schlüssel ermöglicht.

Standardwert: "nil"

Rückgaben

Variant

Die Versionsidentifikator der neu erstellten Version. Es kann verwendet werden, um wichtige Informationen mit GetVersionAsync() abzurufen oder sie mit RemoveVersionAsync() zu entfernen.

UpdateAsync

Angehalten

Diese Funktion ruft den Wert und die Metadaten eines Schlüssels aus dem Datenlagers ab und aktualisiert ihn mit einem neuen Wert, der durch die Rückruffunktion angegeben wird, die durch den zweiten Parameter angegeben wird.Wenn der Rückruf nil zurückgibt, wird die Schreiboperation abgebrochen und der Wert bleibt unverändert.

Werte in GlobalDataStores sind versioniert wie in Versionierung beschrieben. OrderedDataStores unterstützt keine Versionskontrolle, so wird das Aufrufen dieser Methode auf einem bestellten Datenlagerschlüssel den aktuellen Wert überschreiben und frühere Versionen unzugänglich machen.

In Fällen, in denen ein anderer Spielserver den Schlüssel in der kurzen Zeitspanne zwischen dem Abrufen des aktuellen Werts des Schlüssels und der Festlegung des Schlüsselwerts aktualisiert hat, ruft GlobalDataStore:UpdateAsync() die Funktion erneut auf und ignoriert das Ergebnis der vorherigen Anrufe.Die Funktion wird so oft wie nötig aufgerufen, bis die Daten gespeichert sind oder bis die Rückruffunktion zurückkehrt nil.Dies kann verwendet werden, um sicherzustellen, dass keine Daten überschrieben werden.

Jede Zeiche, die in einem Datenlagerspeicher gespeichert wird, muss gültig sein UTF-8 .In UTF-8 werden Werte größer als 127 ausschließlich zur Verschlüsselung mehrerer Bytes verwendet, sodass ein einzelner Byte größer als 127 ungültig ist UTF-8 und der Versuch GlobalDataStore:UpdateAsync() wird fehlschlagen.

Setzen gegen Aktualisieren

GlobalDataStore:SetAsync() eignet sich am besten für ein schnelles Aktualisieren eines bestimmten Schlüssels und zählt nur gegen das Schreiblimit.Es kann jedoch zu Datenunzulänglichkeit führen, wenn zwei Server versuchen, dasselbe Schlüssel gleichzeitig zu setzen. GlobalDataStore:UpdateAsync() ist sicherer für die Verarbeitung mehrerer Serverversuche, da es den aktuellen Schlüsselwert (von jedem Server, der zuletzt aktualisiert wurde) liest, bevor es Änderungen vornimmt.Es ist jedoch etwas langsamer, da es vor dem Schreiben gelesen wird, und es zählt auch gegen das Lese- und Schreiblimit.

Rückruffunktion

Die Rückruffunktion akzeptiert zwei Argumente:

  • Aktueller Wert der Schlüssel vor dem Update.
  • DataStoreKeyInfo instanz, die die neueste versioninformation enthält (dieses argument kann ignoriert werden, wenn metadaten nicht verwendet werden).

Im Gegenzug gibt die Rückruffunktion bis zu drei Werte zurück:

  • Der neue Wert, der für den Schlüssel festgelegt werden soll.
  • Ein Array von UserIds mit dem Schlüssel zu verknüpfen.DataStoreKeyInfo:GetUserIds() sollte zurückgegeben werden, es sei denn, die vorhandenen IDs werden geändert; ansonsten werden alle vorhandenen IDs gelöscht.
  • Ein Luau-Table mit Metadaten, die mit dem Schlüssel verknüpft werden sollen.DataStoreKeyInfo:GetMetadata() sollte zurückgegeben werden, es sei denn, die vorhandenen Metadaten werden geändert; ansonsten werden alle vorhandenen Metadaten gelöscht.

Wenn der Rückruf stattdessen nil zurückgibt, wird der aktuelle Server aufhören, den Schlüssel zu aktualisieren.

Die Rückruffunktion kann nicht zurückgeben, also füge keine Anrufe wie task.wait() hinzu.

Parameter

key: string

Schlüsselname, für den der Wert aktualisiert werden soll.Wenn DataStoreOptions.AllScopes bei der Zugriff auf den Datenstore durch DataStoreService:GetDataStore() auf wahr gesetzt wurde, muss dieser Schlüsselname mit dem ursprünglichen Umfang wie in "scope/key" vorangestellt werden.

Standardwert: ""
transformFunction: function

Transformierungsfunktion, die den aktuellen Wert und DataStoreKeyInfo als Parameter annimmt und den neuen Wert zusammen mit optionalen UserIds und Metadaten zurückgibt.

Standardwert: ""

Rückgaben

Der aktualisierte Wert des Eintrags im Datenlagers mit dem angegebenen Schlüssel und einer DataStoreKeyInfo, die die Versionsnummer, das Datum und die Zeit enthält, in der die Version erstellt wurde, und Funktionen zum Abrufen von UserIds und Metadaten.

Ereignisse