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 gibt Funktionen frei, um Daten zu speichern und zu laden, für den DataStoreService .

Siehe Datenspeicherplätze für eine umfassende Anleitung zu Datenstruktur, Verwaltung, Fehlerbehandlung usw.

Bestellte Daten-Stores unterstützen keine Versionierung und Metadaten, so dass DataStoreKeyInfo immer nil für Schlüssel in einem OrderedDataStore ist. Wenn Sie Versionierung und Supportbenötigen, verwenden Sie einen 1> Class.DataStore1>.

Zusammenfassung

Methoden

Eigenschaften

Methoden

GetAsync

Angehalten

Diese Funktion gibt die neueste Werte des angegebenen Schlüssels und eine DataStoreKeyInfo Instanz zurück. Wenn der Schlüssel nicht existiert oder wenn die neueste Version als gelöscht markiert ist, werden beide Werte nil zurückgegeben.

Schlüssel werden lokal für 4 Sekunden nach der ersten gelesenzwischengespeichert. Ein Class.GlobalDataStore:GetAsync() -Aufruf innerhalb dieser 4 Sekunden gibt einen Wert aus demCache zurück. Änderungen des Schlüssels durch Class.GlobalDataStore:SetAsync() oder Class.GlobalDataStore:UpdateAsync() geben sofort und wieder starten den 4-Sekunden-Timer.

Um eine bestimmte Version zu erhalten, wie eine Version vor der neuesten, verwenden Sie DataStore:GetVersionAsync() .

Parameter

key: string

Der Schlüsselname, für den der Wert angefordert wird. Wenn DataStoreOptions.AllScopes auf wahr gesetzt wurde, wenn Sie auf den Datenserver über Class.DataStoreService:GetDataStore() aufrufen, muss dieser Schlüsselname mit dem ursprünglichen Zoom verbunden sein, wie in " scope/key".

Standardwert: "nil"

Rückgaben

Der Wert des Eintrags in der Datenbank mit dem angegebenen Schlüssel und einer DataStoreKeyInfo Instanz, die die Versionnummer, den Zeitpunkt und die Version erstellt, und Funktionen zum Wiederrufen von UserIds und Metadaten enthält.

IncrementAsync

Variant
Angehalten

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

OrderedDataStore unterstützt keine Versionierung, so dass das Aufrufen dieser Methode auf einer OrderedDataStore-Schlüssel das aktuelle Wert mit dem erhöhten Wert überschreiben wird und frühere Versionen unzugänglich machen wird.

Parameter

key: string

Name der Schlüssel für die Werte sollen aktualisiert werden. Wenn DataStoreOptions.AllScopes auf wahr gesetzt wurde, wenn Sie auf den Daten-Store über Class.DataStoreService:GetDataStore() gelangen, muss dieser Schlüsselname mit dem ursprünglichen Zoom verbunden sein, wie in " scope/key".

delta: number

Betrag, der den aktuellen Wert um einen Betrag erhöht.

Standardwert: 1
userIds: Array

(Optional) Eine 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 Erweiterungen ermöglicht.

Standardwert: "nil"

Rückgaben

Variant

Der aktualisierte Wert des Eintrags in der Datenbank 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 sie die neueste Version vor dem Entfernen zurück.

Nachdem ein Schlüssel über diese Funktion entfernt wird, GlobalDataStore:GetAsync() Anrufe für den Schlüssel werden zurückgegeben, nil . Ältere Versionen des Schlüssels bleiben über DataStore:ListVersionsAsync() und 1> Class.DataStore:GetVersionAsync()1> zugänglich, unter der Annahme, dass sie nicht abgelaufen sind.

OrderedDataStore unterstützt keine Versionierung, so dass das Aufrufen von Class.GlobalDataStore:RemoveAsync()|RemoveAsync() auf einer Class.OrderedDataStore-Taste dauerhaft gelöscht wird.

Entfernte Objekte werden nach 30 Tagen permanent gelöscht.

Wenn die vorherigen Werte über GlobalDataStore:RemoveAsync() oder DataStore:RemoveVersionAsync() gelöscht wurden, gibt die Funktion nil , 1> nil1> für den Wert und 4> Class.DataStoreKeyInfo4> für den Schlüssel zurück.

Parameter

key: string

Schlüsselname zu entfernen. Wenn DataStoreOptions.AllScopes mit true auf Zugriff auf den Daten-Store über DataStoreService:GetDataStore() festgelegt wurde, muss dieser Schlüsselname mit dem ursprünglichen Zoom auf das Feld " scope/key" vorangestellt werden.


Rückgaben

Der Wert des Datenstoßes vor dem Löschen und eine DataStoreKeyInfo Instanz, die die Versionsnummer, den Zeitpunkt und die Version enthält, in der die Version erstellt wurde, und Funktionen enthält, um die Version zu wiederzuholen, UserIds und Metadaten.

SetAsync

Variant
Angehalten

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

Die Werte in Daten-Stores sind versioniert, was bedeutet, dass GlobalDataStore:SetAsync() jedes Mal, wenn es aufgerufen wird, eine neue Version erstellt. Vorherige Versionen können über DataStore:ListVersionsAsync() / DataStore:GetVersionAsync() für bis zu 30 Tage aufgerufen werden, um sie dauerhaft zu löschen.

OrderedDataStore unterstützt keine Versionierung, so dass das Aufrufen dieser Methode auf einer OrderedDataStore-Schlüssel die aktuelle Werte überschreibt und frühere Versionen unzugänglich macht.

Metadaten- Definitionen müssen immer mit einem Wert aktualisiert werden, auch wenn es keine Änderungen an dem aktuellen Wert gibt; sonst wird der aktuelle Wert verloren.

Jede Zeichenkette, die in einem Daten-Store gespeichert wird, muss gültig sein UTF-8. In UTF-8 werden Werte größer als 127 ausschließlich für die Encodierung mehr-Byte-Codepoints verwendet, so dass ein einzelnes Byte größer als 127 nicht gültig UTF-8 ist und der GlobalDataStore:SetAsync() Versuch fehlschlägt.

Setzen vs. Update

GlobalDataStore:SetAsync() ist am besten für eine schnelle Aktualisierung eines bestimmten Schlüssels, und es zählt nur gegen das Schreiblimit. jedoch kann es Datenkonsistenz verursachen, wenn zwei Server versuchen, den gleichen Schlüssel gleichzeitig zu aktualisieren. GlobalDataStore:UpdateAsync()

Parameter

key: string

Der Schlüsselname für den der Wert festlegenwerden soll. Wenn DataStoreOptions.AllScopes mit true beim Zugriff auf den Daten-Store über DataStoreService:GetDataStore() festgelegt wurde, muss dieser Schlüsselname mit dem ursprünglichen Zoom wie in " scope/key" vorangestellt werden.

value: Variant

Der Wert, auf den der Datenstoreschlüssel eingestellt sein wird.

userIds: Array

Tabelle von UserIds , sehr empfohlen, um bei der Unterstützung mit der GDPR-Tracking / Entfernung zu helfen.

Standardwert: "{}"

(Optional) DataStoreSetOptions Instanz, die auf dem Schlüssel Metadaten-Speicherung erlaubt.

Standardwert: "nil"

Rückgaben

Variant

Die Version identifiziert der neu erstellte Version. Es kann verwendet werden, um Schlüssel-Info mit GetVersionAsync() abzurufen, oder um es mit RemoveVersionAsync() zu entfernen.

UpdateAsync

Angehalten

Diese Funktion ruft den Wert und die Metadaten eines Schlüssels aus dem Daten-Store ab und aktualisiert ihn mit einem neuen Wert, der durch die angegebene Rückruffunktion festgelegt wird. Wenn die Rückruffunktion nil gibt, wird die Schreib操作 abgebrochen und der Wert bleibt unverändert.

Wenn das Update erfolgreich ist, wird eine neue Version des Wertes erstellt und die vorherigen Versionen über DataStore:ListVersionsAsync() und DataStore:GetVersionAsync() zugänglich bleiben.

OrderedDataStore unterstützt keine Versionierung, so dass das Aufrufen dieser Funktion auf einer OrderedDataStore-Schlüssel die aktuelle Werte überschreiben und frühere Versionen unzugänglich machen wird.

In Fällen, in denen ein anderer Spielserver den Schlüssel in der kurzen Zeit zwischen der Abrufung des Schlüsselwertes und dem Festlegen des Schlüsselwertes aktualisiert, ruft die Funktion erneut auf, das Ergebnis des vorherigen Aufrufs zu verwerfen. Die Funktion wird so oft aufgerufen, bis die Daten gespeichert werden, <a href="/reference/engine/datastores/update-

Jede Zeichenkette, die in einem Daten-Store gespeichert wird, muss gültig sein UTF-8. In UTF-8 werden Werte größer als 127 ausschließlich für die Encodierung mehr-Byte-Codepoints verwendet, so dass ein einzelnes Byte größer als 127 nicht gültig UTF-8 ist und die Class.GlobalDataStore:UpdateAsync() -Versuche, die einzelnen Bytes größer als 127 sind, fehl

Setzen vs. Update

GlobalDataStore:SetAsync() ist am besten für eine schnelle Aktualisierung eines bestimmten Schlüssels, und es zählt nur gegen das Schreiblimit. jedoch kann es Datenkonsistenz verursachen, wenn zwei Server versuchen, den gleichen Schlüssel gleichzeitig zu aktualisieren. GlobalDataStore:UpdateAsync()

Rückruf-Funktion

Die Rückruf-Funktion akzeptiert zwei Argumente:

  • Aktueller Wert des Schlüssels vor dem Update.
  • DataStoreKeyInfo Instanz, die die neuesten Versioneninformationen enthält (dieses Argument kann ignoriert werden, wenn keine Metadaten verwendet werden).

Darum gibt die Rückruhr函数 bis zu drei Werte zurück:

  • Der neue Wert für den Schlüssel.
  • Ein Array von UserIds mit dem Schlüssel zu verknüpfen. DataStoreKeyInfo:GetUserIds() sollte zurückgegeben werden, es sei denn, die bestehenden IDs werden geändert; sonst werden alle bestehenden IDs zurückgesetzt.
  • Eine Lua-Tabelle, die Metadaten enthält, mit denen sich der Schlüssel verknüpfen kann. DataStoreKeyInfo:GetMetadata() sollte zurückgegeben werden, es sei denn, die vorhandenen Metadaten werden geändert; sonst werden alle vorhandenen Metadaten zurückgesetzt.

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

Die Rückruf-Funktion kann nicht liefern, also nicht include Calls wie task.wait() .

Parameter

key: string

Name der Schlüssel für die Werte sollen aktualisiert werden. Wenn DataStoreOptions.AllScopes auf wahr gesetzt wurde, wenn Sie auf den Daten-Store über Class.DataStoreService:GetDataStore() gelangen, muss dieser Schlüsselname mit dem ursprünglichen Zoom verbunden sein, wie in " scope/key".

transformFunction: function

Transformiere die Funktion, die die aktuelle Werte und DataStoreKeyInfo als Argumente an nimmt und den neuen Wert zusammen mit optionalen UserIds und Metadaten zurückgibt.


Rückgaben

Der aktualisierte Wert des Eintrags in der Datenbank mit dem angegebenen Schlüssel und einer DataStoreKeyInfo Instanz, die die Versionnummer, den Zeitpunkt und die Version erstellt, und Funktionen enthält, um die Version UserIds und die Metadaten wiederzuholen.

Ereignisse