DataStoreService
*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.
Dịch vụ lưu trữ dữ liệu tiết lộ các phương pháp để lấy GlobalDataStore và OrderedDataStore đối tượng.Các kho dữ liệu chỉ có thể truy cập bởi các máy chủ trò chơi, vì vậy bạn chỉ có thể sử dụng DataStoreService trong một Script hoặc một ModuleScript được sử dụng bởi một Script .
Xem Kho lưu trữ dữ liệu để có hướng dẫn chi tiết về cấu trúc dữ liệu, quản lý, xử lý lỗi, v.v.
Mẫu mã
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
Tóm Tắt
Thuộc Tính
Xác định xem chức năng lưu trữ dữ liệu có nên tự động thử lại hay không.DataStoreService không tôn trọng thuộc tính này vì lý do kỹ thuật đã vô hiệu hóa việc thử lại tự động.Do đó, bạn phải triển khai các hệ thống để thực hiện lại các hoạt động của riêng mình.
Phương Pháp
Tạo một DataStore với tên và phạm vi được cung cấp.
Trả lại kho lưu trữ dữ cửa hàngmặc định.
Nhận một OrderedDataStore được cho một tên và phạm vi tùy chọn.
Trả về số lượng yêu cầu có thể được thực hiện bởi đánh máyyêu cầu đã cho.
Trả về một đối tượng DataStoreListingPages để liệt kê qua tất cả các kho dữ liệu trải nghiệm
Thuộc Tính
AutomaticRetry
Xác định xem chức năng lưu trữ dữ liệu có nên tự động thử lại hay không.
DataStoreService không tôn trọng thuộc tính này vì lý do kỹ thuật đã vô hiệu hóa việc thử lại tự động.Do đó, bạn phải triển khai các hệ thống để thực hiện lại các hoạt động của riêng mình.Có thể tự động thử lại sẽ được bật lại trong tương lai.
Phương Pháp
GetDataStore
Chức năng này tạo một DataStore instance với tên và phạm vi được cung cấp.Các cuộc gọi tiếp theo đến phương thức này với cùng tên/phạm vi sẽ trả về cùng một đối tượng.
Sử dụng tham số scope sẽ hạn chế các hoạt động đến phạm vi đó bằng cách tự động gán phạm vi cho các chìa khóa trong tất cả các hoạt động được thực hiện trên kho dữ liệu.Chức năng này cũng chấp nhận một ví dụ tùy chọn DataStoreOptions bao gồm các tùy chọn để bật AllScopes .Xem Kho dữ liệu để có chi tiết về phạm vi.
Tham Số
Tên của kho dữ cửa hàng.
(Tùy chọn) Một chuỗi xác định phạm vi.
(Tùy chọn) A DataStoreOptions một ví dụ để bật các tính năng thử nghiệm và tính năng API v2
Lợi Nhuận
GetGlobalDataStore
Chức năng này trả về mặc định GlobalDataStore .Nếu bạn muốn truy cập một kho lưu dữ liệu cụ thể có tên là **** thay vào đó, bạn nên sử dụng chức năng GetDataStore().
Lưu ý rằng DataStore được trả bởi chức năng này luôn luôn sử dụng phạm vi u . Xem Kho lưu trữ dữ liệu để có chi tiết về phạm vi.
Lợi Nhuận
Mẫu mã
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
Phương pháp này trả về một OrderedDataStore , tương tự như cách GetDataStore() thực hiện với GlobalDataStores .Các cuộc gọi tiếp theo đến phương thức này với cùng tên/phạm vi sẽ trả về cùng một đối tượng.
Tham Số
Lợi Nhuận
Mẫu mã
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
Chức năng này trả về số lượng yêu cầu lưu trữ dữ liệu mà vị trí hiện tại có thể thực hiện dựa trên Enum.DataStoreRequestType đã cho.Bất kỳ yêu cầu nào vượt quá ngân sách này sẽ bị hạn chế.Theo dõi và điều chỉnh tần suất yêu cầu lưu trữ dữ liệu bằng cách sử dụng chức năng này được khuyến nghị.
Tham Số
Lợi Nhuận
Mẫu mã
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
Trả về một đối tượng DataStoreListingPages để liệt kê qua tất cả các kho dữ liệu trải nghiệmNó chấp nhận một tham số tùy chọn prefix để chỉ tìm các kho dữ liệu có tên bắt đầu với tiền tố cung cấp.
Chỉ các kho dữ liệu chứa ít nhất một đối tượng sẽ được liệt kê thông qua chức năng này.
Tham Số
(Tùy chọn) Prefix để liệt kê các kho lưu trữ dữ liệu bắt đầu với tiền tố đã cho.
(Tùy chọn) Số lượng vật phẩm được trả về trong mỗi trang.Nếu không có giá trị nào được cung cấp, động cơ gửi một giá trị mặc định là 0 cho dịch vụ lưu trữ dữ liệu web, sau đó mặc định là 32 vật phẩm mỗi trang.
(Tùy chọn) Cursor để tiếp tục lặp lại.
Lợi Nhuận
DataStoreListingPages ví dụ chứa DataStoreInfo ví dụ cung cấp chi tiết như tên, thời gian tạo và thời gian cập nhật cuối cùng.