DataStoreService
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
DataStoreService expose des méthodes pour obtenir GlobalDataStore et OrderedDataStore des objets.Les magasins de données ne peuvent être accessés que par les serveurs de jeu, vous ne pouvez donc utiliser que DataStoreService dans un Script ou un ModuleScript qui est utilisé par un Script .
Voir magasins de données pour un guide complet sur la structure des données, la gestion, la gestion des erreurs, etc.
Échantillons de code
This code sample prints the request budget for all data store request types.
local DataStoreService = game:GetService("DataStoreService")
for _, enumItem in pairs(Enum.DataStoreRequestType:GetEnumItems()) do
print(enumItem.Name, DataStoreService:GetRequestBudgetForRequestType(enumItem))
end
Résumé
Propriétés
Définit si les fonctions de stockage de données doivent automatiquement réessayer ou non.DataStoreService ne respecte pas cette propriété car la réessai automatique a été désactivée pour des raisons techniques.Vous devez donc mettre en œuvre des systèmes pour réessayer les opérations vous-même.
Méthodes
Crée une instance DataStore avec le nom et la portée fournis.
Retourne le boutiquede données par défaut.
Obtenez un OrderedDataStore donné un nom et une portée facultative.
Retourne le nombre de demandes qui peuvent être faites par le taperde demande donné.
Retourne un objet DataStoreListingPages pour effectuer une liste à travers tous les magasins de données de l'expérience.
Propriétés
AutomaticRetry
Définit si les fonctions de stockage de données doivent automatiquement réessayer ou non.
DataStoreService ne respecte pas cette propriété car la réessai automatique a été désactivée pour des raisons techniques.Vous devez donc mettre en œuvre des systèmes pour réessayer les opérations vous-même.Il est possible que la réessai automatique soit à nouveau activée dans le futur.
Méthodes
GetDataStore
Cette fonction crée une instance DataStore avec le nom et la portée fournis.Les appels ultérieurs à cette méthode avec le même nom/scope retourneront le même objet.
L'utilisation du paramètre scope restreindra les opérations à cette portée en préfixant automatiquement la portée aux clés dans toutes les opérations effectuées sur le boutiquede données.Cette fonction accepte également une instance optionnelle DataStoreOptions qui inclut des options pour activer AllScopes.Voir Versioning, listing, et caching pour les détails sur la portée.
Paramètres
Nom du boutiquede données.
(Facultatif) Une chaîne spécifiant la portée.
(Facultatif) Une instance A DataStoreOptions pour activer les fonctionnalités expérimentales et les fonctionnalités de l'API v2.
Retours
GetGlobalDataStore
Cette fonction renvoie par défaut le GlobalDataStore .Si vous voulez accéder à un stock de données spécifique nommé au lieu de cela, vous devez utiliser la fonction GetDataStore().
Notez que le DataStore retourné par cette fonction utilise toujours la portée u . Voir magasins de données pour les détails sur la portée.
Retours
Échantillons de code
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.
local DataStoreService = game:GetService("DataStoreService")
local GlobalDataStore = DataStoreService:GetGlobalDataStore()
print(GlobalDataStore.Name)
GetOrderedDataStore
Cette méthode renvoie un OrderedDataStore , semblable à la façon dont GetDataStore() fait avec GlobalDataStores .Les appels ultérieurs à cette méthode avec le même nom/scope retourneront le même objet.
Paramètres
Retours
Échantillons de code
This code sample demonstrates usage of an OrderedDataStore and pages.
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
Cette fonction renvoie le nombre de demandes de stockage de données que le lieu actuel peut faire en fonction du Enum.DataStoreRequestType.Toutes les demandes qui dépassent ce budget sont soumises à un étranglement.Il est recommandé de surveiller et d'ajuster la fréquence des demandes de stockage de données en utilisant cette fonction.
Paramètres
Retours
Échantillons de code
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
Retourne un objet DataStoreListingPages pour effectuer une liste à travers tous les magasins de données de l'expérience.Il accepte un paramètre facultatif prefix optionnel pour localiser uniquement les magasins de données dont les noms commencent par le préfixe fourni.
Seuls les magasins de données contenant au moins un objet seront listés via cette fonction.
Paramètres
(Facultatif) Préfixe pour énumérer les magasins de données qui commencent par le préfixe donné.
(Facultatif) Nombre d'éléments à retourner dans chaque page.Si aucune valeur n'est donnée, le moteur envoie une valeur par défaut de 0 au service Web de la base de données, qui à son tour défaut à 32 éléments par page.
(Facultatif) Cursor pour poursuivre l'itération.
Retours
DataStoreListingPages instance contenant DataStoreInfo instances qui fournissent des détails tels que le nom, le temps de création et le temps de la dernière mise à jour.