Ghi chú phát hành
Học
Lớp công cụ
DataStoreService
Không Thể Tạo
Dịch Vụ
Không Sao Chép

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.


Tóm Tắt
Thành viên kế thừa
Mẫu mã
Ngân sách DataStore
local DataStoreService = game:GetService("DataStoreService")
-- Lặp qua tất cả các loại yêu cầu DataStore
for _, enumItem in pairs(Enum.DataStoreRequestType:GetEnumItems()) do
-- In ra tên loại yêu cầu và ngân sách yêu cầu của nó
print(enumItem.Name, DataStoreService:GetRequestBudgetForRequestType(enumItem))
end

Tài Liệu Tham Khảo API
Phương Pháp
GetDataStore
Các khả năng: DataStore
DataStoreService:GetDataStore(
name:string, scope:string, options:Instance
Tham Số
name:string
scope:string
Giá Trị Mặc Định: "global"
options:Instance
Giá Trị Mặc Định: "nil"
Lợi Nhuận

GetGlobalDataStore
Các khả năng: DataStore
DataStoreService:GetGlobalDataStore():DataStore
Lợi Nhuận
Mẫu mã
Lấy Thể Hiện GlobalDataStore
local DataStoreService = game:GetService("DataStoreService")
local GlobalDataStore = DataStoreService:GetGlobalDataStore()
print(GlobalDataStore.Name)

GetOrderedDataStore
Các khả năng: DataStore
DataStoreService:GetOrderedDataStore(
name:string, scope:string
Tham Số
name:string
scope:string
Giá Trị Mặc Định: "global"
Lợi Nhuận
Mẫu mã
Cơ bản về OrderedDataStore
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()
-- Dữ liệu trong 'topTen' được lưu trữ với chỉ mục là chỉ mục trên trang
-- Đối với mỗi mục, 'data.key' là khóa trong OrderedDataStore và 'data.value' là giá trị
for rank, data in ipairs(topTen) do
local name = data.key
local points = data.value
print(name .. " xếp hạng #" .. rank .. " với " .. points .. " điểm")
end
-- Có thể tải trang tiếp theo...
--pages:AdvanceToNextPageAsync()
end
-- Tạo một số dữ liệu
pointsStore:SetAsync("Alex", 55)
pointsStore:SetAsync("Charley", 32)
pointsStore:SetAsync("Sydney", 68)
-- Hiển thị mười người chơi hàng đầu
printTopTenPlayers()

GetRequestBudgetForRequestType
Các khả năng: DataStore
DataStoreService:GetRequestBudgetForRequestType(requestType:Enum.DataStoreRequestType):number
Tham Số
Lợi Nhuận
Mẫu mã
Ngân sách yêu cầu in
local DataStoreService = game:GetService("DataStoreService")
local globalStore = DataStoreService:GetGlobalDataStore()
local function printBudget()
local budget = DataStoreService:GetRequestBudgetForRequestType(Enum.DataStoreRequestType.SetIncrementAsync)
print("Ngân sách set/increment hiện tại:", 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
Sinh Lợi
Các khả năng: DataStore
DataStoreService:ListDataStoresAsync(
prefix:string, pageSize:number, cursor:string
Tham Số
prefix:string
pageSize:number
Giá Trị Mặc Định: 0
cursor:string

SetRateLimitForRequestType
Các khả năng: DataStore
DataStoreService:SetRateLimitForRequestType(
requestType:Enum.DataStoreRequestType, baseLimit:number, perPlayerLimit:number
):()
Tham Số
baseLimit:number
perPlayerLimit:number
Lợi Nhuận
()
Mẫu mã
Thiết lập giới hạn tần suất
local MigrateScript = require(script.Parent.MigrateScript)
local DataStoreService = game:GetService("DataStoreService")
DataStoreService:SetRateLimitForRequestType(Enum.DataStoreRequestType.StandardRead, 1000, 0)
DataStoreService:SetRateLimitForRequestType(Enum.DataStoreRequestType.StandardWrite, 2000, 0) -- hai lần ghi, vì vậy cần gấp đôi giới hạn như một lần lấy
DataStoreService:SetRateLimitForRequestType(Enum.DataStoreRequestType.StandardList, 100, 0)
DataStoreService:SetRateLimitForRequestType(Enum.DataStoreRequestType.StandardRemove, 1000, 0)
local sourceStore = DataStoreService:GetDataStore("ds_to_migrate")
local destinationStore1 = DataStoreService:GetDataStore("ds_destination_1")
local destinationStore2 = DataStoreService:GetDataStore("ds_destination_2")
-- Tiện ích để chờ ngân sách
local function waitForBudget(requestType)
while (DataStoreService:GetRequestBudgetForRequestType(requestType) <= 0) do
task.wait(1)
end
end
waitForBudget(Enum.DataStoreRequestType.StandardList)
local success, pages = pcall(function()
return sourceStore:ListKeysAsync()
end)
if success then
while true do
local items = pages:GetCurrentPage()
for _, item in ipairs(items) do
-- 1. Lấy dữ liệu từ Nguồn
waitForBudget(Enum.DataStoreRequestType.StandardRead)
local getSuccess, value = pcall(function()
return sourceStore:GetAsync(item.KeyName)
end)
if getSuccess and value ~= nil then
-- 2. Di chuyển dữ liệu đến Điểm đến
waitForBudget(Enum.DataStoreRequestType.StandardWrite)
local setSuccess, err = pcall(function()
destinationStore1:SetAsync(item.KeyName, MigrateScript.Migrate1(value))
end)
if setSuccess then
print("Đã di chuyển thành công khóa đến điểm đến 1: " .. item.KeyName)
else
warn("Không thể di chuyển khóa đến điểm đến 1: " .. item.KeyName .. " - " .. tostring(err))
end
waitForBudget(Enum.DataStoreRequestType.StandardWrite)
local setSuccess, err = pcall(function()
destinationStore2:SetAsync(item.KeyName, MigrateScript.Migrate2(value))
end)
if setSuccess then
print("Đã di chuyển thành công khóa đến điểm đến 2: " .. item.KeyName)
else
warn("Không thể di chuyển khóa đến điểm đến 2: " .. item.KeyName .. " - " .. tostring(err))
end
-- 3. Xóa dữ liệu từ nguồn
waitForBudget(Enum.DataStoreRequestType.StandardRemove)
local deleteSuccess, err = pcall(function()
sourceStore:RemoveAsync(item.KeyName)
end)
if deleteSuccess then
print("Đã xóa thành công khóa từ nguồn: " .. item.KeyName)
else
warn("Không thể xóa khóa từ nguồn: " .. item.KeyName .. " - " .. tostring(err))
end
else
warn("Không thể lấy khóa từ nguồn: " .. item.KeyName)
end
end
if pages.IsFinished then break end
-- 3. Tiến lên Trang tiếp theo
waitForBudget(Enum.DataStoreRequestType.StandardList)
local nextSuccess = pcall(function()
pages:AdvanceToNextPageAsync()
end)
if not nextSuccess then
warn("Không thể tiến lên trang tiếp theo.")
break
end
end
print("Quá trình di chuyển hoàn tất.")
else
warn("Không thể liệt kê các khóa.")
end

©2026 Roblox Corporation. Roblox, logo Roblox và Powering Imagination là các nhãn hiệu đã đăng ký và chưa đăng ký của chúng tôi tại Hoa Kỳ và các quốc gia khác.