Roblox bietet mehrere Optionen zur Datenspeicherung. Jede Speicheroption hat Vor- und Nachteile und ist für unterschiedliche Anwendungsfälle geeignet. Diese Tabelle fasst die verfügbaren Optionen zusammen und liefert die nächsten Vergleichspunkte zu standardisierten Webdiensten.
| Dienst | Persistenz | Umfang | In-Game-Zugriff | Cloud-Vergleich |
|---|---|---|---|---|
| Datenspeicher | Permanent | Über Server hinweg | Lese-Schreibzugriff | NoSQL-Datenbank |
| Speichersysteme | Maximal 45 Tage | Über Server hinweg | Lese-Schreibzugriff | In-Memory-Cache |
| Konfigurationen | Permanent | Über Server hinweg | Nur-Lesezugriff | Anwendungs-Konfiguration und Funktionserlaubnisse |
| Geheimnis-Speicher | Permanent | Über Server hinweg | Nur-Lesezugriff | Geheimnisverwaltung |
| Luau In-Memory | Sitzungsdauer | Einzelner Server | Lese-Schreibzugriff | Server-RAM |
Wann Datenspeicher verwenden
DataStoreService speichert langfristige Daten, die zwischen Sitzungen bestehen bleiben müssen, wie den Fortschritt von Benutzern oder Inventarartikel. Datenspeicher sind pro Spiel konsistent, sodass jeder Server für jeden Ort innerhalb eines Spiels auf dieselben Daten zugreifen und diese ändern kann. Es gibt zwei Arten von Datenspeichern: standardisierte und geordnete.
Standardisierte Datenspeicher können Daten wie Zahlen, Zeichenfolgen und Tabellen speichern, die nicht gerankt oder sortiert werden müssen. Sie speichern Daten als Schlüssel-Wert-Paare; jeder Eintrag wird unter einem Schlüssel gespeichert, der innerhalb seines Datenspeichers eindeutig ist und den Sie abrufen, aktualisieren oder löschen können. Weitere Informationen finden Sie unter Datenspeicher.
Geordnete Datenspeicher können nur Zahlen speichern. Jeder Eintrag wird unter einem Schlüssel gespeichert, der innerhalb seines Datenspeichers eindeutig ist und den Sie abrufen, aktualisieren oder löschen können. Sie können diese Daten numerisch ranking und sortieren und sie in auf- oder absteigender Reihenfolge basierend auf den gespeicherten numerischen Werten abrufen. Weitere Informationen finden Sie unter Geordnete Datenspeicher.
| Standardisierte Datenspeicher | Geordnete Datenspeicher | |
|---|---|---|
| Datentyp | Zahlen, Zeichenfolgen, Booleans und Tabellen. | Nur Zahlen. |
| Häufige Anwendungsfälle | Benutzerfortschritt, Inventarartikel und Spielvoreinstellungen. | Allzeit, persistente Rangkriterien und Bestenlisten. Im Gegensatz zu Bestenlisten in Speichersystemen sind diese Bestenlistendaten permanent. |
| Backup vorheriger Versionen | Verwaltet automatisch frühere Versionen Ihrer Daten für 30 Tage. | Verwaltet keine vorherigen Versionen Ihrer Daten. |
Wann Speichersysteme verwenden
MemoryStoreService ist ein Dienst mit hoher Durchsatzrate und niedriger Latenz, der temporäre Daten speichert, die häufig aktualisiert oder abgerufen werden müssen, wie globale Bestenlisten oder Warteschlangen für das Matchmaking. Mit Speichersystemen kann jeder Server für jeden Ort innerhalb eines Spiels dieselben Daten schnell und häufig abrufen und ändern. Daten in einem Speichersystem laufen nach einer bestimmten Zeit ab, bis zu 45 Tage.
Wenn Sie schnell eine kleine Anzahl von Werten über alle Server hinweg lesen (nicht schreiben) müssen, sind Konfigurationen die bessere Wahl. Speichersysteme sind nicht so leistungsfähig wie Konfigurationen, wenn es darum geht, häufig auf einen einzelnen Schlüssel oder eine Partition zuzugreifen.
Obwohl Speichersysteme temporäre Daten speichern, unterstützen sie auch permanente Features wie einen globalen Marktplatz. Der Marktplatz ist permanent, aber die darin zum Verkauf stehenden Gegenstände haben ein Ablaufdatum.
| Speichersysteme | |
|---|---|
| Datentyp | Zahlen, Zeichenfolgen, Booleans und Tabellen, die nicht länger als 45 Tage bestehen bleiben müssen. |
| Häufige Anwendungsfälle | Fähigkeitsbasiertes Matchmaking, Spielzustände für Mehrspieler-Spiele. |
| Tag- und Monats-Bestenlisten. |
Wann Konfigurationen verwenden
Konfigurationen ermöglichen es Ihnen, Spielvariablen in Echtzeit zu aktualisieren, ohne Server neu zu starten. Sie sind ideal für Funktionserlaubnisse und alle In-Game-Werte, die Sie im Laufe der Zeit optimieren oder experimentieren möchten.
- Konfigurationen sind innerhalb eines Spiels nur schreibgeschützt—Sie ändern sie im Creator Hub oder in Roblox Studio—somit erfüllen sie nicht die gleichen Anwendungsfälle wie Datenspeicher und Speichersysteme.
- Änderungen an Konfigurationen werden innerhalb von fünf Minuten bereitgestellt; Änderungen an Daten und Speichersystemen erfolgen schneller.
| Konfigurationen | |
|---|---|
| Datentyp | Zahlen, Zeichenfolgen, Booleans und JSON-Objekte. |
| Häufige Anwendungsfälle | Aktivierung eines neuen Dungeons, Deaktivierung eines zeitlich begrenzten Spielmodus, Start einer Feiertagsaktion. |
| Gegnergesundheit, Waffenschaden, Artikelpreise, Spielmultiplikatoren, Willkommensnachrichten. |
Wann Geheimnis-Speicher verwenden
Verwenden Sie den Geheimnis-Speicher für Ihr Spiel, um API-Schlüssel, Passwörter und Zugriffstoken zu speichern, die Sie zur Authentifizierung bei externen Diensten verwenden. Das Speichern dieser Werte in einem Datenspeicher birgt unnötige Sicherheitsrisiken.
| Geheimnis-Speicher | |
|---|---|
| Datentyp | Zeichenfolgen. |
| Häufige Anwendungsfälle | API-Schlüssel, Passwörter und Zugriffstoken für Analysen oder Musikdienste. |
Wann In-Memory-Speicher in Luau verwenden
Verwenden Sie In-Memory-Speicher in Luau, um temporäre Daten zu speichern, die mit minimaler Latenz und ohne die Kosten externer Dienstaufrufe abgerufen werden müssen. Dieser Speicher ist in Luau integriert und erfordert keine Einrichtung.
| In-Memory-Speicher in Luau | |
|---|---|
| Datentyp | Zahlen, Zeichenfolgen, Booleans und Tabellen. |
| Häufige Anwendungsfälle | Daten, die nur für eine einzelne Serversitzung relevant sind und nicht gespeichert werden müssen, wie Status-Effekte oder temporäre Punkte, die zurückgesetzt werden, wenn der Benutzer das Spiel verlässt. |
| Werte, die sich häufig ändern, wie Zähler, Timer, Statusflaggen oder eine Gesundheitsanzeige. | |
| Daten, die die Spiel-Logik antreiben, die sofort zugänglich sein muss, wie temporäre Variablen oder die aktuelle Gesundheit eines Gegners. |