数据存储服务 暴露了获取 GlobalDataStore 和 OrderedDataStore 对象的方法。数据存储可以只通过游戏服务器访问,因此您只能在 0>Class.DataStoreService0> 内使用 3>Class.
请参阅数据存储了解数据结构、管理、错误处理等方面的深度指南。
代码示例
local DataStoreService = game:GetService("DataStoreService")
for _, enumItem in pairs(Enum.DataStoreRequestType:GetEnumItems()) do
print(enumItem.Name, DataStoreService:GetRequestBudgetForRequestType(enumItem))
end
概要
属性
设置数据存储功能是否应该自动重试。 数据存储服务因技术原因而禁用自动重试,因此您必须为您自己的系统实现重试操作。
方法
创建一个 DataStore 实例,其名称和范围与提供的名称和范围相同。
返回默认数据存商店。
获取一个 OrderedDataStore 一个名称和可选范围。
返回可以通过指定的请求类型发出的请求输入。
返回一个 DataStoreListingPages 对象,用于列出所有体验数据存储。
属性
方法
GetDataStore
此函数创建一个 DataStore 实例,其名称和范围与提供的名称和范围相同。随后对该方法使用相同的名称/范围的后续调用将返回相同的对象。
使用 scope 参数将限制操作到该范围,通过自动预先将范围预定为键在所有操作上数据存商店。 此函数还接受一个可选的 DataStoreOptions 实例,其中包含启用 AllScopes 的选项。 请参阅 1> 数据存ores1> 了解有关�
参数
返回
GetGlobalDataStore
此函数返回默认 GlobalDataStore 。如果您想要访问具体 命名 的数据存储,您应该使用 GetDataStore() 函数。
返回
代码示例
local DataStoreService = game:GetService("DataStoreService")
local GlobalDataStore = DataStoreService:GetGlobalDataStore()
print(GlobalDataStore.Name)
GetOrderedDataStore
此方法返回一个 OrderedDataStore ,与 GetDataStore() 使用 GlobalDataStores 的方式类似。随后使用该名称/范围的后续调用将返回相同的对象。
参数
返回
代码示例
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
此函数返回当前位置可以根据指定的 Enum.DataStoreRequestType 进行的数据存储请求数量。 任何超出此预算的请求都受到限制。 使用此函数来监控和调整数据存储请求的频率是最佳实践。
参数
返回
代码示例
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
返回一个 DataStoreListingPages 对象,用于列出体验中的所有数据存储。它接受一个可选的 prefix 参数,用于仅找到数据存储的名称开始以指定的前缀。
只有包含至少一个对象的数据才会被列出以此函数。
参数
(可选) 用于列出数据存储开始于指定的前缀。
(可选) 每个页面上返回的物品数量。默认为 32 个。
(可选) 鼠标指针来继续循环。
返回
DataStoreListingPages 实例,包含 DataStoreInfo 实例,提供名称、创建时间和最后更新时间等详细信息。