Database backends/it

From Minetest Wiki
Jump to: navigation, search
Languages Lingua: English • Deutsch • français • italiano

Minetest supporta diversi tipi di database. Questa pagina fornisce un confronto di tutti e 4 (in realtà 5, ma il tipo dummy in genere non è utile) i tipi.

Ci sono tre tipi di database in Minetest (dalla v5.0)

  • Mappa
  • Giocatori
  • Autenticazione


Contents

Tipo Mappa

Il tipo di database si imposta usando l'impostazione backend in world.mt.

Se volete effettuare la migrazione della mappa di un mondo a un nuovo tipo, usate minetestserver --migrate <nome del nuovo tipo> --world <percorso per la cartella del vostro mondo>.

Se usate minetest.exe in Windows, le istruzioni server si possono dare usando "minetest --server", per es. minetest --server --migrate <nome del nuovo tipo> --world <percorso per la cartella del vostro mondo>.

Tipo Giocatore

Il tipo di database si imposta usando l'impostazione player_backend in world.mt.

Se volete effettuare la migrazione degli utenti al nuovo tipo, usate minetestserver --migrate-players <nome del nuovo tipo> --world <percorso per la cartella del vostro mondo>.

Tipo Autenticazione

Il tipo di database si imposta usando l'impostazione auth_backend in world.mt.

Se volete effettuare la migrazione dei dati di autenticazione a un nuovo tipo, usate minetestserver --migrate-auth <nome del nuovo tipo> --world <percorso per la cartella del vostro mondo>.

Tabella di confronto

Tipo Velocità Affidabilità Compatibilità con le build Mappa Giocatori Autenticazione
SQLite3

Buona

Accettabile (possono insorgere problemi con accessi simultanei)

Molto buona (sempre supportato)

LevelDB

Buona

Buona

Generalmente supportata

Redis

Molto buona (dati tenuti nella RAM)

Buona

Sconveniente (necessita server Redis)

PostgreSQL

Molto buona (la maggior parte dei dati usati sono in memoria, gli altri da disco)

Molto buona

Sconveniente (necessita server PostgreSQL)

Dummy

Velocissima

N/D (niente viene salvato su disco)

N/D (niente viene salvato su disco)

File di testo semplice (deprecato)

Cattiva

Cattiva

Deprecata (potrebbe essere rimosso il supporto)

La colonna Compatibilità con le build ha rilevanza solo se volete distribuire i mondi.

SQLite3

SQLite3 è il tipo predefinito per tutti i mondi Minetest, è supportato da ogni build Minetest e perciò è il formato database standard che viene usato per distribuire i mondi.

LevelDB

LevelDB perlopiù si usa sui server a causa della sua affidabilità migliorata e forse velocità. Dovrete installarlo in aggiunta.

Redis

Il supporto per Redis è stato aggiunto a Minetest nell'Aprile 2014, principalmente Redis è utile per i server che consentono l'immagazzinamento di mondi multipli in una singola istanza Redis. Dovrete installarlo in aggiunta (libreria libhiredis).

Informazioni riguardo all'impostazione di un server Redis si possono trovare qui: https://redis.io/topics/quickstart

Impostazioni world.mt per Redis

redis_address -- L'IP o hostname del server Redis.

redis_port -- La porta del server Redis. Facoltativa, predefinita: 6379

redis_hash -- Hash in cui sono immagazzinati i blocchi mappa ("MapBlocks" in Inglese, NdT), se volete mondi multipli in una singola istanza Redis questo deve essere diverso per ciascun mondo. Se non vi serve potete usare per es. IGNORED.

PostgreSQL

Il supporto per PostgreSQL è stato aggiunto a Minetest nel Maggio 2016, principalmente è utile per i server perché consente mondi multipli in una singola istanza, in database multipli.

PostgreSQL è un'alternativa eccellente a Redis. Non immagazzina tutti i dati in memoria, solo i dati recenti e frequenti vengono caricati in memoria. Tutti i dati sono immagazzinati su disco e l'immagazzinamento dei dati è veramente robusto. Potete anche interfacciare facilmente un sito web di fronte al vostro database per offrire un frontend ai vostri utenti.

Sebbene supportiamo versioni più vecchie, si raccomanda di usare almeno PostgreSQL 9.5.

Per migliorare le prestazioni di PostgreSQL coi server minetest, per favore configurate postgresql.conf con un minimo di shared_buffer di 512MB, con un massimo del 50% della RAM disponibile del vostro server.

world.mt per PostgreSQL

pgsql_connection -- Stringa di connessione PostgreSQL per la mappa del mondo | host=<db_host> user=<db_user> password=<db_password> dbname=<db_name>

pgsql_player_connection -- Stringa di connessione PostgreSQL per i giocatori | host=<db_host> user=<db_user> password=<db_password> dbname=<db_name>

Dummy

Un tipo di database "dummy" ("fasullo", NdT), che immagazzina tutti i blocchi mappa nella RAM senza salvarli. Questo significa, non appena il server si spegne o uscite dalla modalità gioco locale, si perdono tutte le modifiche effettuate al mondo. Quando rientrate, il mondo sarà ri-generato da zero.

Questo tipo non viene usato largamente, ma è usato dai server che non richiedono una mappa permanente - per esempio, Capture the Flag ("Cattura la bandiera", NdT).