Roblox oferece várias opções para armazenamento de dados. Cada opção de armazenamento tem prós e contras e é apropriada para diferentes casos de uso. Esta tabela resume as opções disponíveis e fornece os pontos de comparação mais próximos dos serviços web padrão.
| Serviço | Persistência | Escopo | Acesso no jogo | Comparação com a nuvem |
|---|---|---|---|---|
| Armazéns de dados | Permanente | Multi-servidor | Leitura-escrita | Banco de dados NoSQL |
| Armazéns de memória | Máximo de 45 dias | Multi-servidor | Leitura-escrita | Cache em memória |
| Configurações | Permanente | Multi-servidor | Somente leitura | Configuração de aplicativo e sinalizadores de recurso |
| Armazéns de segredos | Permanente | Multi-servidor | Somente leitura | Gerenciamento de segredos |
| Luau em memória | Duração da sessão | Servidor único | Leitura-escrita | RAM do servidor |
Quando usar armazéns de dados
DataStoreService armazena dados de longo prazo que precisam durar entre sessões, como progresso do usuário ou itens de inventário. Os armazéns de dados são consistentes por jogo, então cada servidor para cada local dentro de um jogo pode acessar e alterar os mesmos dados. Existem dois tipos de armazéns de dados: padrão e ordenados.
Armazéns de dados padrão podem armazenar dados como números, strings e tabelas que não precisam ser classificados ou ordenados. Eles armazenam dados como pares chave-valor; cada entrada é armazenada sob uma chave que é única dentro de seu armazém de dados e que você pode recuperar, atualizar ou deletar. Para mais informações, veja Armazéns de dados.
Armazéns de dados ordenados podem armazenar apenas números. Cada entrada é armazenada sob uma chave que é única dentro de seu armazém de dados e que você pode recuperar, atualizar ou deletar. Você pode classificar e ordenar esses dados numericamente e recuperá-los em ordem crescente ou decrescente com base nos valores numéricos armazenados. Para mais informações, veja Armazéns de dados ordenados.
| Armazéns de dados padrão | Armazéns de dados ordenados | |
|---|---|---|
| Tipo de dado | Números, strings, booleanos e tabelas. | Apenas números. |
| Casos de uso comuns | Progresso do usuário, itens do inventário e configurações do jogo. | Sistemas de ranking persistentes de todos os tempos e quadros de líderes. Ao contrário dos quadros de líderes em armazéns de memória, esses dados de quadro de líderes são permanentes. |
| Backup de versão anterior | Gerencia automaticamente versões anteriores dos seus dados por 30 dias. | Não gerencia versões anteriores dos seus dados. |
Quando usar armazéns de memória
MemoryStoreService é um serviço de alta vazão e baixa latência que armazena dados temporários que precisam ser atualizados ou acessados com frequência, como quadros de líderes globais ou filas de matchmaking. Com os armazéns de memória, cada servidor para cada local dentro de um jogo pode acessar e alterar os mesmos dados de forma rápida e frequente. Os dados em um armazém de memória expiram após um certo período, de até 45 dias.
Se você precisa ler rapidamente (não escrever) um pequeno número de valores em todos os servidores, configurações são a melhor escolha. Os armazéns de memória não são tão eficientes quanto as configurações ao acessar frequentemente uma única chave ou partição.
Embora os armazéns de memória armazenem dados temporários, eles também suportam recursos permanentes, como um mercado global. O mercado é permanente, mas os itens à venda dentro dele têm uma data de validade.
| Armazéns de memória | |
|---|---|
| Tipo de dado | Números, strings, booleanos e tabelas que não precisam persistir por mais de 45 dias. |
| Casos de uso comuns | Matchmaking baseado em habilidade, estados de partidas para jogos multiplayer. |
| Quadros de líderes diários e mensais. |
Quando usar configurações
Configurações permitem que você atualize variáveis no jogo em tempo real sem reiniciar servidores. Elas são ideais para sinalizadores de recursos e quaisquer valores dentro do jogo que você espera ajustar ao longo do tempo ou experimentar com.
- As configurações são somente leitura dentro de um jogo—você as modifica no Creator Hub ou no Roblox Studio—portanto, não servem aos mesmos casos de uso que armazéns de dados e armazéns de memória.
- As alterações nas configurações são realizadas ao longo de cinco minutos; as alterações em dados e armazéns de memória são mais instantâneas.
| Configurações | |
|---|---|
| Tipo de dado | Números, strings, booleanos e objetos JSON. |
| Casos de uso comuns | Ativar um novo calabouço, desativar um modo de jogo limitado no tempo, iniciar um evento de feriado. |
| Saúde dos inimigos, dano de armas, preços de itens, multiplicadores de jogo, mensagens de boas-vindas. |
Quando usar armazéns de segredos
Use o armazém de segredos para o seu jogo para armazenar quaisquer chaves de API, senhas e tokens de acesso que você usa para autenticar com serviços externos. Armazenar esses valores em um armazém de dados apresenta riscos de segurança desnecessários.
| Armazéns de segredos | |
|---|---|
| Tipo de dado | Strings. |
| Casos de uso comuns | Chaves de API, senhas e tokens de acesso para serviços de análise ou música. |
Quando usar armazenamento em memória no Luau
Use armazenamento em memória no Luau para armazenar dados temporários que precisam ser acessados com baixa latência e sem o custo de fazer chamadas a serviços externos. Este armazenamento é embutido no Luau e não requer configuração.
| Armazenamento em memória no Luau | |
|---|---|
| Tipo de dado | Números, strings, booleanos e tabelas. |
| Casos de uso comuns | Dados que são relevantes apenas para uma única sessão de servidor e não precisam ser persistidos, como efeitos de status ou pontos temporários que se resetam quando o usuário sai do jogo. |
| Valores que mudam com frequência, como contadores, temporizadores, sinalizadores de estado ou uma barra de saúde. | |
| Dados que impulsionam a lógica do jogo, que precisam ser acessíveis instantaneamente, como variáveis temporárias ou a saúde atual de um inimigo. |