Roblox propose plusieurs options pour le stockage des données. Chaque option de stockage a ses avantages et ses inconvénients et convient à différents cas d'utilisation. Ce tableau résume les options disponibles et fournit les points de comparaison les plus proches des services web standards.
| Service | Persistance | Portée | Accès en jeu | Comparaison avec le cloud |
|---|---|---|---|---|
| Magasins de données | Permanent | Multi-serveur | Lecture-écriture | Base de données NoSQL |
| Magasins en mémoire | Maximum de 45 jours | Multi-serveur | Lecture-écriture | Cache en mémoire |
| Configs | Permanent | Multi-serveur | Lecture seule | Configuration d'application et indicateurs de fonctionnalités |
| Magasins secrets | Permanent | Multi-serveur | Lecture seule | Gestion des secrets |
| Luau en mémoire | Durée de session | Serveur unique | Lecture-écriture | RAM du serveur |
Quand utiliser les magasins de données
DataStoreService stocke des données à long terme qui doivent durer entre les sessions, telles que les progrès des utilisateurs ou les objets d'inventaire. Les magasins de données sont cohérents par jeu, donc chaque serveur pour chaque lieu dans un jeu peut accéder et changer les mêmes données. Il existe deux types de magasins de données : standards et ordonnés.
Les magasins de données standards peuvent stocker des données comme des nombres, des chaînes de caractères et des tables qui n'ont pas besoin d'être classées ou triées. Ils stockent les données sous forme de paires clé-valeur ; chaque entrée est stockée sous une clé unique dans son magasin de données que vous pouvez récupérer, mettre à jour ou supprimer. Pour plus d'informations, voir Magasins de données.
Les magasins de données ordonnés ne peuvent stocker que des nombres. Chaque entrée est stockée sous une clé unique dans son magasin de données que vous pouvez récupérer, mettre à jour ou supprimer. Vous pouvez classer et trier ces données numériquement et les récupérer dans l'ordre croissant ou décroissant en fonction des valeurs numériques stockées. Pour plus d'informations, voir Magasins de données ordonnés.
| Magasins de données standards | Magasins de données ordonnés | |
|---|---|---|
| Type de données | Nombres, chaînes, booléens et tables. | Uniquement des nombres. |
| Cas d'utilisation courants | Progrès des utilisateurs, objets d'inventaire et paramètres de jeu. | Systèmes de classement permanents et tableaux de classement. Contrairement aux tableaux de classement dans les magasins en mémoire, ces données de tableau de classement sont permanentes. |
| Sauvegarde de version précédente | Gère automatiquement les versions précédentes de vos données pendant 30 jours. | Ne gère pas les versions précédentes de vos données. |
Quand utiliser les magasins en mémoire
MemoryStoreService est un service à haut débit et faible latence qui stocke des données temporaires qui doivent être mises à jour ou accessibles fréquemment, telles que les tableaux de classement globaux ou les files d'attente de matchmaking. Avec les magasins en mémoire, chaque serveur pour chaque lieu dans un jeu peut accéder et changer les mêmes données rapidement et fréquemment. Les données dans un magasin en mémoire expirent après une certaine période, jusqu'à 45 jours.
Si vous devez lire rapidement (sans écrire) un petit nombre de valeurs sur tous les serveurs, les configs sont un meilleur choix. Les magasins en mémoire ne sont pas aussi performants que les configs lors d'un accès fréquent à une seule clé ou partition.
Bien que les magasins en mémoire stockent des données temporaires, ils prennent également en charge des fonctionnalités permanentes comme un marché global. Le marché est permanent, mais les objets à vendre à l'intérieur ont une date d'expiration.
| Magasins en mémoire | |
|---|---|
| Type de données | Nombres, chaînes, booléens et tables qui n'ont pas besoin de persister plus de 45 jours. |
| Cas d'utilisation courants | Matchmaking basé sur les compétences, états de match pour les jeux multijoueurs. |
| Tableaux de classement quotidiens et mensuels. |
Quand utiliser les configs
Configs vous permettent de mettre à jour des variables en jeu en temps réel sans redémarrer les serveurs. Elles sont idéales pour les indicateurs de fonctionnalités et toutes les valeurs en jeu que vous espérez affiner au fil du temps ou expérimenter avec.
- Les configs sont en lecture seule depuis un jeu—vous les modifiez sur Creator Hub ou dans Roblox Studio—donc elles ne servent pas les mêmes cas d'utilisation que les magasins de données et les magasins en mémoire.
- Les changements apportés aux configs sont déployés sur une période de cinq minutes ; les changements dans les magasins de données et en mémoire sont plus instantanés.
| Configs | |
|---|---|
| Type de données | Nombres, chaînes, booléens et objets JSON. |
| Cas d'utilisation courants | Activation d'un nouveau donjon, désactivation d'un mode de jeu limité dans le temps, début d'un événement de vacances. |
| Santé des ennemis, dommages des armes, prix des objets, multiplicateurs de jeu, messages de bienvenue. |
Quand utiliser les magasins secrets
Utilisez le magasin de secrets pour votre jeu afin de stocker toutes les clés API, mots de passe et jetons d'accès que vous utilisez pour vous authentifier auprès de services externes. Stocker ces valeurs dans un magasin de données présente des risques de sécurité inutiles.
| Magasins secrets | |
|---|---|
| Type de données | Chaînes de caractères. |
| Cas d'utilisation courants | Clés API, mots de passe et jetons d'accès pour des services d'analytique ou de musique. |
Quand utiliser le stockage en mémoire dans Luau
Utilisez le stockage en mémoire dans Luau pour stocker des données temporaires qui doivent être accessibles avec une latence minimale et sans le coût d'appels à des services externes. Ce stockage est intégré à Luau et ne nécessite aucune configuration.
| Stockage en mémoire dans Luau | |
|---|---|
| Type de données | Nombres, chaînes, booléens et tables. |
| Cas d'utilisation courants | Données qui ne sont pertinentes que pour une seule session serveur et qui n'ont pas besoin d'être persistées, telles que les effets de statut ou les points temporaires qui se réinitialisent lorsque l'utilisateur quitte le jeu. |
| Valeurs qui changent fréquemment, comme des compteurs, des temporisateurs, des indicateurs d'état, ou une barre de santé. | |
| Données qui pilotent la logique du jeu, qui doivent être accessibles instantanément, comme des variables temporaires ou la santé actuelle d'un ennemi. |