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

DataStoreService wyświetla metody uzyskiwania GlobalDataStore i OrderedDataStore obiektów. Data store może być dostępny tylko przez serwery gry, więc możesz używać tylko 0> Class.DataStore

Zobacz magazyny danych dla kompleksowej przewodu po strukturze danych, zarządzaniu, korekcji błędów itp.

Przykłady kodu

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 próbować lub nie. DataStoreService nie szanuje tej właściwości, ponieważ automatyczne ponowne próbowanie zostało wyłączone z powodów technicznych. W związku z tym musisz wdrożyć systemy do ponownego próbowania 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 próbować lub nie.

DataStoreService nie szanuje tego właściwości, ponieważ automatyczne ponowne próby zostały wyłączone z technicznych powodów. Dlatego musisz wdrożyć systemy do ponownego uruchamiania operacji samodzielnie. Możliwe, że automatyczne ponowne próby zostaną ponownie włączone w przyszłości.

Metody

GetDataStore

Funkcja ta tworzy instancję DataStore z podanym nazwą i zakresem. Kolejne wezwania do tej metody z tego samego nazwiska/zakresu zwrócą ten sam obiekt.

Używanie parametru scope ograniczy operacje do tego zakresu poprzez automatyczne przedłużanie zakresu do kluczy w wszystkich operacjach wykonanych na danych. Ta funkcja akceptuje również opcjonalną instancję DataStoreOptions, która włącza opcje włączenia Class.DataStoreOptions.AllScopes|AllScopes</

Parametry

name: string

Nazwa sklepdanych.

scope: string

(Opcjonalne) Strings spełniające zakres.

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

(Opcjonalne) A DataStoreOptions instance to enable experimental features and v2 API features.

Wartość domyślna: "nil"

Zwroty

Instancja DataStore z dostępnym imieniem i opcjonalnym zakresem.

GetGlobalDataStore

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


Zwroty

Przykłady kodu

Get GlobalDataStore Instance

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

GetOrderedDataStore

Ten metod returnuje OrderedDataStore, podobny do sposób, w jaki GetDataStore() robi z GlobalDataStores . Dalsze wezwania do tego metodu z tego samego nazwy/składu zwrócą tę samą obiekt.

Parametry

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

Zwroty

Przykłady kodu

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 wstępnie zwraca liczbę żądań dostępu do magazynu danych, które może zrobić obecne miejsce na podstawie zaznaczonego Enum.DataStoreRequestType. Każde zgłoszenie z tych wniosków jest podlegane ograniczeniu. Monitorowanie i dostosowywanie częstotliwości wniosków o dostęp do magazynu danych za pomocą tej funkcji jest zalecane.

Parametry


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 liczenia poprzez wszystkie przechowywane dane w całym doświadczeniu. Występuje opcjonalny parametr prefix do lokalizacji tylko przechowywanych danych, które zaczynają się od podanego przedrostu.

Tylko magazyny danych zawierające co najmniej jeden obiekt zostaną wymienione za pośrednictwem tej funkcji.

Parametry

prefix: string

(Opcjonalne) Prefix do liczenia magazynów danych, które zaczynają się od podanego przedrostka.

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

(Opcjonalne) Liczba pozycji do zwrócenia na każdej stronie. Domyślnie jest 32.

Wartość domyślna: 0
cursor: string

(Opcjonalne) Kursorek, aby kontynuować cykl.

Wartość domyślna: ""

Zwroty

DataStoreListingPages instancja zawierająca DataStoreInfo instancje, które dostarczają szczegóły, takie jak imię, czas utworzenia i czas ostatniego aktualizowania.

Zdarzenia