Difference between revisions of "Database backends"

From Minetest Wiki
Jump to navigation Jump to search
m
m
Line 13: Line 13:
 
'''Acceptable'''
 
'''Acceptable'''
 
| style="background-color: #FFB;" |  
 
| style="background-color: #FFB;" |  
'''Acceptable'''
+
'''Acceptable''' ''(db can corrupt if accessed while open)''
 
| style="background-color: #9F9;" |
 
| style="background-color: #9F9;" |
'''Very good (supported by any Minetest version)'''
+
'''Very good''' ''(supported by any Minetest version)''
 
|-
 
|-
 
| LevelDB
 
| LevelDB
Line 23: Line 23:
 
'''Good'''
 
'''Good'''
 
| style="background-color: #FFB;" |
 
| style="background-color: #FFB;" |
'''Acceptable'''
+
'''Usually supported'''
 
|-
 
|-
 
| Redis
 
| Redis
Line 31: Line 31:
 
'''Good'''
 
'''Good'''
 
| style="background-color: #F99;" |
 
| style="background-color: #F99;" |
'''None (needs redis server)'''
+
'''None''' ''(needs redis server)''
 
|}
 
|}
  

Revision as of 20:38, 16 April 2014

Minetest supports serveral database backends. This page provides a comparison of all three backends.

Comparison table

Backend Speed Reliability Compatibility with builds
SQLite3

Acceptable

Acceptable (db can corrupt if accessed while open)

Very good (supported by any Minetest version)

LevelDB

Good

Good

Usually supported

Redis

Very good

Good

None (needs redis server)

SQLite3

SQLite3 is the default backend for all Minetest worlds, it is supported by every Minetest builds and is therefore the standard database format that is used to distribute worlds.

LevelDB

LevelDB is mostly used on servers because of it's improved reliability and the ability to use more than 4GB space.

Redis

Redis support was added to Minetest in April 2014, redis is mainly useful for servers as it allows multiple worlds to be stored in one redis instance:

world.mt settings for redis

redis_address -- The IP or hostname of the redis server.

redis_port -- The port of the redis server. Optional, default: 6379

redis_hash -- Hash where the MapBlocks are stored in, if you want multiple worlds in one redis instance this needs to be different for each world.