Roblox oferuje kilka opcji przechowywania danych. Każda opcja przechowywania ma swoje wady i zalety oraz jest odpowiednia dla różnych zastosowań. Poniższa tabela podsumowuje dostępne opcje i przedstawia najbliższe punkty porównawcze z standardowymi usługami internetowymi.
| Usługa | Trwałość | Zasięg | Dostęp w grze | Porównanie z chmurą |
|---|---|---|---|---|
| Magazyny danych | Trwałe | Między serwerami | Odczyt-zapis | Baza danych NoSQL |
| Magazyny w pamięci | Maksymalnie 45 dni | Między serwerami | Odczyt-zapis | Pamięć podręczna w pamięci |
| Konfiguracje | Trwałe | Między serwerami | Tylko do odczytu | Konfiguracja aplikacji i flagi funkcji |
| Magazyny sekretów | Trwałe | Między serwerami | Tylko do odczytu | Zarządzanie sekretem |
| Luau w pamięci | Czas trwania sesji | Pojedynczy serwer | Odczyt-zapis | RAM serwera |
Kiedy używać magazynów danych
DataStoreService przechowuje dane długoterminowe, które muszą przetrwać między sesjami, takie jak postępy użytkownika lub przedmioty w inwentarzu. Magazyny danych są spójne dla każdej gry, więc każdy serwer dla każdego miejsca w grze może uzyskiwać dostęp i zmieniać te same dane. Istnieją dwa typy magazynów danych: standardowe i uporządkowane.
Standardowe magazyny danych mogą przechowywać dane, takie jak liczby, ciągi znaków i tabele, które nie muszą być klasyfikowane ani sortowane. Przechowują dane jako pary klucz-wartość; każdy wpis jest przechowywany pod kluczem, który jest unikalny w swoim magazynie danych i który możesz pobierać, aktualizować lub usuwać. Aby uzyskać więcej informacji, zobacz Magazyny danych.
Uporządkowane magazyny danych mogą przechowywać tylko liczby. Każdy wpis jest przechowywany pod kluczem, który jest unikalny w swoim magazynie danych i który możesz pobierać, aktualizować lub usuwać. Możesz klasyfikować i sortować te dane numerycznie i uzyskiwać je w porządku rosnącym lub malejącym w zależności od przechowywanych wartości numerycznych. Aby uzyskać więcej informacji, zobacz Uporządkowane magazyny danych.
| Standardowe magazyny danych | Uporządkowane magazyny danych | |
|---|---|---|
| Typ danych | Liczby, ciągi znaków, boolowskie i tabele. | Tylko liczby. |
| Typowe zastosowania | Postępy użytkowników, przedmioty w inwentarzu i ustawienia gry. | Systemy rankingowe na przestrzeni czasu i tablice liderów. W przeciwieństwie do tablic leaderów w magazynach w pamięci, dane tej tablicy liderów są trwałe. |
| Kopia zapasowa poprzedniej wersji | Automatycznie zarządza poprzednimi wersjami twoich danych przez 30 dni. | Nie zarządza poprzednimi wersjami twoich danych. |
Kiedy używać magazynów w pamięci
MemoryStoreService to usługa o wysokiej przepustowości i niskiej latencji, która przechowuje tymczasowe dane, które muszą być często aktualizowane lub odczytywane, takie jak globalne tablice liderów lub kolejki do matchmakingu. Dzięki magazynom w pamięci, każdy serwer dla każdego miejsca w grze może szybko i często uzyskiwać dostęp do tych samych danych i je zmieniać. Dane w magazynie pamięci wygasają po określonym czasie, do 45 dni.
Jeśli potrzebujesz szybko odczytać (ale nie zapisać) niewielką liczbę wartości wśród wszystkich serwerów, konfiguracje są lepszym wyborem. Magazyny w pamięci nie są tak wydajne jak konfiguracje podczas częstego uzyskiwania dostępu do jednego klucza lub partycji.
Chociaż magazyny w pamięci przechowują tymczasowe dane, obsługują również stałe funkcje, takie jak globalny rynek. Rynek jest trwały, ale przedmioty sprzedawane w jego obrębie mają datę wygaśnięcia.
| Magazyny w pamięci | |
|---|---|
| Typ danych | Liczby, ciągi znaków, boolowskie i tabele, które nie muszą przetrwać dłużej niż 45 dni. |
| Typowe zastosowania | Matchmaking oparty na umiejętnościach, stany meczów dla gier wieloosobowych. |
| Codzienne i miesięczne tablice liderów. |
Kiedy używać konfiguracji
Konfiguracje pozwalają na aktualizację zmiennych w grze w czasie rzeczywistym bez restartowania serwerów. Są idealne do flag funkcji oraz wszelkich wartości w grze, które chcesz dostosować w czasie lub z którymi chcesz eksperymentować.
- Konfiguracje są tylko do odczytu z poziomu gry—modyfikujesz je w Creator Hub lub w Roblox Studio—więc nie służą tym samym zastosowaniom, co magazyny danych i magazyny w pamięci.
- Zmiany w konfiguracjach wdrażane są w ciągu pięciu minut; zmiany w magazynach danych i pamięci są bardziej natychmiastowe.
| Konfiguracje | |
|---|---|
| Typ danych | Liczby, ciągi znaków, boolowskie i obiekty JSON. |
| Typowe zastosowania | Włączanie nowego lochu, wyłączanie ograniczonego czasowo trybu gry, rozpoczęcie wydarzenia świątecznego. |
| Zdrowie przeciwników, obrażenia broni, ceny przedmiotów, mnożniki gry, wiadomości powitalne. |
Kiedy używać magazynów sekretów
Użyj magazynu sekretów w swojej grze do przechowywania jakichkolwiek kluczy API, haseł i tokenów dostępu, które używasz do uwierzytelnienia w usługach zewnętrznych. Przechowywanie tych wartości w magazynie danych wiąże się z niepotrzebnymi zagrożeniami dla bezpieczeństwa.
| Magazyny sekretów | |
|---|---|
| Typ danych | Ciągi znaków. |
| Typowe zastosowania | Klucze API, hasła i tokeny dostępu do usług analitycznych lub muzycznych. |
Kiedy używać pamięci operacyjnej w Luau
Używaj pamięci operacyjnej w Luau do przechowywania tymczasowych danych, które muszą być dostępne z minimalnym opóźnieniem i bez kosztów związanych z wywołaniami usług zewnętrznych. Ta pamięć jest wbudowana w Luau i nie wymaga konfiguracji.
| Pamięć operacyjna w Luau | |
|---|---|
| Typ danych | Liczby, ciągi znaków, boolowskie i tabele. |
| Typowe zastosowania | Dane, które są istotne tylko dla jednej sesji serwera i nie muszą być przechowywane, takie jak efekty statusu lub tymczasowe punkty, które resetują się po opuszczeniu gry przez użytkownika. |
| Wartości, które zmieniają się często, takie jak liczniki, timery, flagi stanu lub pasek zdrowia. | |
| Dane, które napędzają logikę gry, które muszą być dostępne natychmiast, na przykład zmienne tymczasowe lub aktualne zdrowie przeciwnika. |