Minetest支持多个数据库后端。此页面提供所有后端的比较。
Minetest(从5.0.0版本开始)有三个数据库后端:
- 地图
- 玩家
- 验证
地图后端
使用world.mt中的 设置来backend
设置数据库后端。将后端名称以小写形式作为设置的值(例如,对于SQLite3)。 backend=sqlite3
如果要将世界地图迁移到新的后端,请使用minetestserver --migrate <name of new backend> --world <path to your world directory>
。
如果在Windows中使用minetest.exe,则可以使用“ minetest --server
”给出服务器指令,例如minetest --server --migrate <name of new backend> --world <path to your world directory>
。
玩家后端
使用world.mt中的 设置来player_backend
设置数据库后端。
如果要将玩家迁移到新的后端,请使用minetestserver --migrate-players <name of new backend> --world <path to your world directory>
。
认证后端
使用world.mt中的 设置来auth_backend
设置数据库后端。
如果要将身份验证数据迁移到新的后端,请使用minetestserver --migrate-auth <name of new backend> --world <path to your world directory>
。
比较表
Backend | Speed | Reliability | Compatibility with builds | Map | Players | Authentication |
---|---|---|---|---|---|---|
SQLite3 | Good | Acceptable (problems can arise with concurrent accesses) | Very good (always supported) | |||
LevelDB | Good | Good | Mostly supported | |||
Redis | Very good (data kept in RAM) | Good | Inconvenient (Redis server required) | |||
PostgreSQL | Very good (most used data are in memory, others from disk) | Very good | Inconvenient (PostgreSQL server required) | |||
Dummy | Blazing fast | N/A (nothing is saved to disk) | None (nothing is saved to disk) | |||
Files (deprecated) | Bad | Bad | Deprecated (support may be removed) |
仅当您要分发世界时,“与建筑物 的兼容性” 列才相关。
SQLite3
SQLite3是所有Minetest世界的默认后端,每个Minetest构建都支持SQLite3,因此它是用于分发世界的标准数据库格式。
LevelDB
LevelDB主要用于服务器,因为它具有更高的可靠性和速度。您需要另外安装它。
Redis
Redis支持于2014年4月添加到Minetest中,Redis主要用于服务器,因为它允许将多个世界存储在一个Redis实例中。您需要另外安装它(libhiredis 库)。
可在以下位置找到有关设置Redis服务器的信息:https : //redis.io/topics/quickstart
Redis的world.mt设置
redis_address
- 在IP或Redis的服务器的主机名。
redis_port
- Redis的服务器的端口。可选,默认值:6379
redis_hash
- 存放MapBlocks的哈希,如果要在一个Redis实例中包含多个世界,则每个世界都需要不同。如果不需要,可以使用eg IGNORED
。
PostgreSQL的
PostgreSQL支持于2016年5月添加到Minetest中,它主要用于服务器,因为它允许在单个实例中的多个数据库中使用多个世界。
PostgreSQL是Redis的绝佳替代品。它不会将所有数据存储在内存中,而只会将最近且频繁的数据加载到内存中。所有数据都在磁盘存储上,并且数据存储非常可靠。您还可以轻松地在数据库前连接网站,为用户提供前端。
虽然我们支持旧版本,但建议至少使用PostgreSQL 9.5。
为了使用Minetest服务器提高PostgreSQL的性能,请配置postgresql.conf
最少shared_buffer
512MB的内存,最多配置服务器可用RAM的50%。
PostgreSQL的world.mt
pgsql_connection
- 世界地图的PostgreSQL连接字符串| 主机= <db_host>用户= <db_user>密码= <db_password> dbname = <db_name>
pgsql_player_connection
- 球员的PostgreSQL连接字符串| 主机= <db_host>用户= <db_user>密码= <db_password> dbname = <db_name>
Dummy
一个Dummy后端,它将所有MapBlock存储在RAM中而不保存它们。这意味着,一旦服务器关闭或您离开单人游戏,对世界所做的所有更改都会丢失。当您重新加入时,世界将从头开始重新生成。
这个后端没有得到广泛使用,但是不需要持久映射的服务器使用它,例如,捕获标志。
Files
玩家和身份验证数据的旧版后端。一切都存储在纯文本文件中。它缓慢,不可靠且笨拙。现在不鼓励使用此后端,并且将来可能会删除该后端。