DataStoreService

Pokaż przestarzałe

*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.

Brak możliwości tworzenia
Usługa
Bez replikacji

Usługa przechowywania danych ujawnia metody uzyskiwania obiektów GlobalDataStore i OrderedDataStore.Magazyny danych mogą być dostępne tylko przez serwery gier, więc możesz korzystać tylko z DataStoreService w ramach Script lub ModuleScript, które są używane przez Script .

Zobacz Magazyny danych dla szczegółowego przewodnika na temat struktury danych, zarządzania, obsługi błędów itp.

Przykłady kodu

This code sample prints the request budget for all data store request types.

DataStore Budget

local DataStoreService = game:GetService("DataStoreService")
for _, enumItem in pairs(Enum.DataStoreRequestType:GetEnumItems()) do
print(enumItem.Name, DataStoreService:GetRequestBudgetForRequestType(enumItem))
end

Podsumowanie

Właściwości

  • Bez replikacji
    Zabezpieczenia użytkowników lokalnych
    Odczyt równoległy

    Ustawia, czy funkcje przechowywania danych powinny automatycznie ponownie spróbować, czy nie.DataStoreService nie respektuje tej właściwości, ponieważ automatyczne ponowne próby zostały wyłączone z powodów technicznych.Dlatego musisz wdrożyć systemy do odnowienia operacji samodzielnie.

Metody

Właściwości

AutomaticRetry

Bez replikacji
Zabezpieczenia użytkowników lokalnych
Odczyt równoległy

Ustawia, czy funkcje przechowywania danych powinny automatycznie ponownie spróbować, czy nie.

DataStoreService nie respektuje tej właściwości, ponieważ automatyczne ponowne próby zostały wyłączone z powodów technicznych.Dlatego musisz wdrożyć systemy do odnowienia operacji samodzielnie.Możliwe jest ponowne włączenie automatycznego ponownego próbowania w przyszłości.

Metody

GetDataStore

Funkcja ta tworzy instancję DataStore z podaną nazwą i zakresem.Następne wezwania do tej metody z tym samym nazwiskiem/zakresem zwrócą ten sam obiekt.

Użycie parametru scope ograniczy operacje do tego zakresu poprzez automatyczne dodawanie zakresu do kluczy we wszystkich wykonywanych na sklepdanych operacjach.Funkcja ta akceptuje również opcjonalną instancję DataStoreOptions, która zawiera opcje umożliwiające włączenie AllScopes.Zobacz Magazyny danych dla szczegółów na temat zakresu.

Parametry

name: string

Nazwa sklepdanych.

Wartość domyślna: ""
scope: string

(Opcjonalnie) A ciąg określający zakres.

Wartość domyślna: "global"
options: Instance

(Opcjonalnie) A instancja DataStoreOptions włączająca eksperymentalne funkcje i funkcje API wersji 2

Wartość domyślna: "nil"

Zwroty

Instancja DataStore z podaną nazwą i opcjonalnym zakresem.

GetGlobalDataStore

Funkcja ta zwraca domyślną GlobalDataStore .Jeśli chcesz uzyskać dostęp do określonego nazwanego magazynu danych, powinieneś użyć funkcji GetDataStore().

Zauważ, że DataStore zwrócone przez tę funkcję zawsze używa zakresu u . Zobacz przechowywanie danych na szczegóły dotyczące zakresu.


Zwroty

Przykłady kodu

The following example retrieves a default data store instance which behaves like a regular Instance. Since a GlobalDataStore is an Instance, functions such as GlobalDataStore:GetChildren() will execute without error.

Get GlobalDataStore Instance

local DataStoreService = game:GetService("DataStoreService")
local GlobalDataStore = DataStoreService:GetGlobalDataStore()
print(GlobalDataStore.Name)

GetOrderedDataStore

Ta metoda zwraca OrderedDataStore , podobnie jak sposób, w jaki GetDataStore() robi z GlobalDataStores .Następne wezwania do tej metody z tym samym nazwiskiem/zakresem zwrócą ten sam obiekt.

Parametry

name: string
Wartość domyślna: ""
scope: string
Wartość domyślna: "global"

Zwroty

Przykłady kodu

This code sample demonstrates usage of an OrderedDataStore and pages.

OrderedDataStore Basics

local DataStoreService = game:GetService("DataStoreService")
local pointsStore = DataStoreService:GetOrderedDataStore("Points")
local function printTopTenPlayers()
local isAscending = false
local pageSize = 10
local pages = pointsStore:GetSortedAsync(isAscending, pageSize)
local topTen = pages:GetCurrentPage()
-- The data in 'topTen' is stored with the index being the index on the page
-- For each item, 'data.key' is the key in the OrderedDataStore and 'data.value' is the value
for rank, data in ipairs(topTen) do
local name = data.key
local points = data.value
print(name .. " is ranked #" .. rank .. " with " .. points .. "points")
end
-- Potentially load the next page...
--pages:AdvanceToNextPageAsync()
end
-- Create some data
pointsStore:SetAsync("Alex", 55)
pointsStore:SetAsync("Charley", 32)
pointsStore:SetAsync("Sydney", 68)
-- Display the top ten players
printTopTenPlayers()

GetRequestBudgetForRequestType

Funkcja ta zwraca liczbę żądań przechowywania danych, które obecne miejsce może wykonać w oparciu o podany Enum.DataStoreRequestType .Wszelkie żądania przekraczające ten budżet podlegają ograniczeniu.Zaleca się monitorowanie i dostosowywanie częstotliwości żądań przechowywania danych za pomocą tej funkcji.

Parametry

Wartość domyślna: ""

Zwroty

Przykłady kodu

Print Request Budget

local DataStoreService = game:GetService("DataStoreService")
local globalStore = DataStoreService:GetGlobalDataStore()
local function printBudget()
local budget = DataStoreService:GetRequestBudgetForRequestType(Enum.DataStoreRequestType.SetIncrementAsync)
print("Current set/increment budget:", budget)
end
for i = 1, 5 do
local key = "key" .. i
local success, err = pcall(function()
globalStore:SetAsync(key, true)
end)
if success then
printBudget()
else
print(err)
end
end

ListDataStoresAsync

Wynik

Zwraca obiekt DataStoreListingPages do wyszukiwania przez wszystkie magazyny danych doświadczenia.Akceptuje opcjonalny parametr prefix opcjonalny, aby znaleźć tylko magazyny danych, których nazwy zaczynają się od podanego prefiksu.

Tylko sklepy danych zawierające co najmniej jeden obiekt zostaną wymienione za pomocą tej funkcji.

Parametry

prefix: string

(Opcjonalnie) Prefix do wymieniania magazynów danych, które zaczynają się od podanego prefiksu.

Wartość domyślna: ""
pageSize: number

(Opcjonalnie) Liczba przedmiotów, które mają być zwrócone na każdej stronie.Jeśli nie podano żadnej wartości, silnik wysyła domyślną wartość 0 do usługi przechowywania danych, która z kolei domyślnie wynosi 32 elementów na stronę.

Wartość domyślna: 0
cursor: string

(Opcjonalnie) Cursor, aby kontynuować iterację.

Wartość domyślna: ""

Zwroty

DataStoreListingPages instancja zawierająca DataStoreInfo instancje, które dostarczają szczegóły, takie jak nazwa, czas stworzenia i czas ostatniej aktualizacji.

Zdarzenia