GlobalDataStore
*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.
A GlobalDataStore ujawnia funkcje zapisu i ładowania danych dla DataStoreService.
Zobacz magazyny danych dla kompleksowej przewodu po strukturze danych, zarządzaniu, korekcji błędów itp.
Przechowywane dane nie wspierają wersji i metadanych, więc DataStoreKeyInfo zawsze jest nil dla kluczy w OrderedDataStore. Jeśli potrzebujesz wsparcia dla wersji i metadanych, użyj 2>Class.DataStore2>.
Podsumowanie
Metody
Zwraca wartość klucza w określonym przechowywaniu danych i instancję DataStoreKeyInfo.
- IncrementAsync(key : string,delta : number,userIds : Array,options : DataStoreIncrementOptions):Variant
Zwiększa wartość klucza o podanych liczbie (obie muszą być liczbami całkowitymi).
Usuwa określony klucz, zachowując jednocześnie dostępną wersję.
Ustawia wartość magazynu danych dla podanego klucza.
Aktualizuje wartość klucza z nową wartością z określonej funkcji zwrotnej.
Właściwości
Metody
GetAsync
Funkcja ta zwraca najnowszą wartość dostarczonego klucza i instancję DataStoreKeyInfo. Jeśli klucz nie istnieje lub jeśli najnowsza wersja została oznaczona jako usunięta, obie wartości zwracają nil.
Klucze są przechowywane lokalnie przez 4 sekundy po pierwszym przeczytane. Wezwanie GlobalDataStore:GetAsync() w tych 4 sekundach zwraca wartość z kache GlobalDataStore:SetAsync() lub GlobalDataStore:UpdateAsync() . Modyfikacje klucza przez 1> Class.GlobalDataStore:SetAsync()1>
Aby uzyskać określoną wersję, taką jak wersja przed najnowszą, użyj DataStore:GetVersionAsync() .
Parametry
Nazwa klucza, dla której wartość jest proszona. Jeśli DataStoreOptions.AllScopes został ustawiony na prawdę podczas dostępu do magazynu danych poprzez DataStoreService:GetDataStore(), ten klucz musi być zapisany z oryginalnym zakresem, jak w " scope/key".
Zwroty
Wartość wpisu w magazynie danych z kluczem podanym i instancją DataStoreKeyInfo, która zawiera numer wersji, datę i czas utworzenia wersji i funkcje do odzyskiwania UserIds i metadanych.
IncrementAsync
Funkcja ta zwiększa wartość klucza o podanych wartościach (obie muszą być liczbami całkowitymi).
OrderedDataStore nie wspiera wersji, więc wezwanie metody na kluczu OrderedDataStore zastąpi obecną wartość poprzez wartość zwiększoną i uczyni poprzednie wersje niedostępnymi.
Parametry
Nazwa klucza dla której wartość powinna być aktualizowana. Jeśli DataStoreOptions.AllScopes został ustawiony na prawdę, gdy uzyskuje się dostęp do magazynu danych poprzez DataStoreService:GetDataStore(), ten klucz musi być zapisany z oryginalnym zakresem, jak w " scope / key".
Ilość do zwiększenia bieżącej wartości o.
(Opcjonalne) DataStoreIncrementOptions instancja, która łączy wiele dodatkowych parametrów jako możliwości dostosowania i umożliwia przyszłościową rozszerzenie.
Zwroty
Aktualna wartość wpisu w magazynie danych z kluczem podanym.
RemoveAsync
Funkcja ta oznacza określony klucz jako usunięty poprzez utworzenie nowej wersji "tombstone" klucza. Przed tym zwraca najnowszą wersję przed wezwanie usunięcia.
Po usunięciu klucza za pomocą tej funkcji, GlobalDataStore:GetAsync() wzywa do kluczu nil . Starsze wersje klucza pozostają dostępne poprzez DataStore:ListVersionsAsync() i 1> Class.DataStore:GetVersionAsync()1>, z założeniem, że nie wygasły.
OrderedDataStore nie wspiera wersji, więc wezwanie RemoveAsync() na kluczu OrderedDataStore usunie go permanentnie.
Usunięte obiekty zostaną usunięte permanentnie po 30 dniach.
Jeśli poprzednie wartości zostały już usunięte za pośrednictwem GlobalDataStore:RemoveAsync() lub DataStore:RemoveVersionAsync(), funkcja zwraca nil , 1> nil1> dla wartości i 4> Class.DataStoreKeyInfo4> dla klucza.
Parametry
Nazwa klucza do usunięcia. Jeśli DataStoreOptions.AllScopes został ustawiony na prawdę, gdy uzyskujesz dostęp do magazynu danych poprzez DataStoreService:GetDataStore(), ten klucz musi być zapisany z oryginalnym zakresem, jak w " scope / key".
Zwroty
Wartość magazynu danych przed usunięciem i instancji DataStoreKeyInfo, która zawiera numer wersji, datę i czas utworzenia wersji i funkcje do odzyskiwania UserIds i metadanych.
SetAsync
Funkcja ta ustawia najnowszą wartość, UserIds , i metadane dla podanego klucza.
Wartości w magazynach danych są zalecone, co oznacza, że GlobalDataStore:SetAsync() stworzy nową wersję za każdym razem, gdy jest ona wywołana. Poprzednie wersje można uzyskać poprzez DataStore:ListVersionsAsync() / DataStore:GetVersionAsync() dla do 30 dni, w których są one trwale usuw
OrderedDataStore nie wspiera wersji, więc wezwanie metody na kluczu OrderedDataStore zastąpi obecną wartość i uczyni poprzednie wersje niedostępne.
Definicje metadanych muszą zawsze być aktualizowane wraz z wartością, nawet jeśli nie ma zmian w obecnej wartości; w przeciwnym razie obecna wartość zostanie utracona.
Każda wartość przechowywana w magazynie danych musi być ważna UTF-8 . W UTF-8 wartości większe niż 127 są wykorzystywane wyłącznie do kodowania wielobajtowych punktów kodu, więc pojedynczy bajt większy niż 127 nie będzie ważny UTF-8 i próba Class.GlobalDataStore:Set
Ustaw vs. Aktualizacja
GlobalDataStore:SetAsync() jest najlepszy dla szybkiej aktualizacji określonego klucza i tylko liczy się na limit write. Jest jednak możliwe, że powoduje błędy danych, jeśli dwa serwery próbują ustawić ten sam klucz w tym samym czasie. <
Parametry
Nazwa klucza dla której wartość powinna być ustawiać. Jeśli DataStoreOptions.AllScopes został ustawiony na prawdę podczas dostępu do magazynu danych poprzez DataStoreService:GetDataStore(), ten klucz musi być zapisany z oryginalnym zakresem, jak w " scope / key".
Wartość, do której zostanie ustawiony klucz magazynu danych.
Tabela z UserIds , bardzo rekomendowana do pomocy w śledzeniu/usuwaniu danych zgodnych z GDPR.
(Opcjonalne) DataStoreSetOptions instancja, która umożliwia specyfikację metadanych na kluczu.
Zwroty
Unikalny identyfikator wersji. Można go użyć do odzyskiwania informacji kluczowych używając GetVersionAsync() lub usunąć go używając RemoveVersionAsync() .
UpdateAsync
Funkcja ta odczytuje wartość i metadane klucza z magazynu danych i aktualizuje je nową wartością określoną przez funkcję zwrotu. Jeśli funkcja zwrotu zwraca nil, operacja zapisu jest anulowana, a wartość pozostaje nienaruszona.
Jeśli aktualizacja się powiodła, nowa wersja wartości zostanie utworzona, a poprzednie wersje będą dostępne poprzez DataStore:ListVersionsAsync() i DataStore:GetVersionAsync() .
OrderedDataStore nie wspiera wersji, więc wezwanie funkcji na kluczu OrderedDataStore zastąpi obecną wartość i utworzy poprzednie wersje niedostępne.
W przypadkach, gdy inny serwer aktualizował klucz w krótkim okresie czasu między odzyskaniem aktualnej wartości kluczu i ustawieniem wartości klucza, GlobalDataStore:UpdateAsync() będzie ponownie wzywał funkcję, odrzucając wynik poprzedniego wezwania. Funkcja zostanie ponown
Każda wartość przechowywana w magazynie danych musi być ważna UTF-8 . W UTF-8 wartości większe niż 127 są wykorzystywane wyłącznie do kodowania wielobajtowych punktów kodu, więc pojedynczy bajt większy niż 127 nie będzie ważny UTF-8 i próba Class.GlobalDataStore:Update
Ustaw vs. Aktualizacja
GlobalDataStore:SetAsync() jest najlepszy dla szybkiej aktualizacji określonego klucza i tylko liczy się na limit write. Jest jednak możliwe, że powoduje błędy danych, jeśli dwa serwery próbują ustawić ten sam klucz w tym samym czasie. <
Funkcja zwrotu
Funkcja zwrotu dzwonka przyjmuje dwa argumenty:
- Aktualna wartość klucza przed aktualizacja.
- DataStoreKeyInfo instancja, która zawiera najnowsze informacje o wersji (ten argument można ignorować, jeśli metadane nie są używane).
Z kolei funkcja zwrotu w callback zwraca do trzech wartości:
- Nowa wartość do ustawienia dla klucza.
- Materiały UserIds do związania z kluczem. DataStoreKeyInfo:GetUserIds() powinien zostać zwrócony, chyba że istniejące ID nie są zmieniane; w przeciwnym razie wszystkie istniejące ID zostaną usunięte.
- Tabela Lua zawierająca metadane do związania z kluczem. DataStoreKeyInfo:GetMetadata() powinien zostać zwrócony, chyba że istniejące metadane nie są zmieniane; w przeciwnym razie wszystkie istniejące metadane zostaną usunięte.
Jeśli funkcja zwrotu nil zamiast tego zatrzyma się próbując aktualizacji klucza, serwer będzie nadal próbować go aktualizować.
Funkcja zwrotu nie może zwrócić, więc nie włączaj łączące takie jak task.wait().
Parametry
Nazwa klucza dla której wartość powinna być aktualizowana. Jeśli DataStoreOptions.AllScopes został ustawiony na prawdę, gdy uzyskuje się dostęp do magazynu danych poprzez DataStoreService:GetDataStore(), ten klucz musi być zapisany z oryginalnym zakresem, jak w " scope / key".
Transformacja funkcji, która odbiera obecną wartość i DataStoreKeyInfo jako parametry i w zwrotuje nową wartość wraz z opcjonalnymi UserIds i metadanymi.
Zwroty
Aktualna wartość wpisu w magazynie danych z kluczem podanym i instancją DataStoreKeyInfo, która zawiera numer wersji, datę i czas utworzenia wersji i funkcje do odzyskiwania UserIds i metadanych.