Files
2025-08-25 18:36:29 +08:00

3.5 KiB
Raw Permalink Blame History

数据库的概念

在服务器插件的开发中,大多数数据都会被存储到数据库。

简介

数据库在很多服务器软件的开发中它起到了非常重要的数据存储和筛选的作用在Apollo插件的开发中也不例外。

Apollo目前支持3种数据库MySQL、Redis和MongoDB它们各有各的特点下面将进行依次介绍。

MySQL

MySQL是一种关系型数据库它的数据存储格式和我们常用的excel非常相似。

每个MySQL的数据表中都有提前设定好的列用来代表这一列的数据的类型和名称。各个列的数据组合叫做行。位于同一行的数据可以一同被选择。

为了更好的理解下面举一个Excel和MySQL对比的例子。

如上图所示这个是一个Excel表格其中需要记录4种数据分别是玩家UID玩家名上次登录时间注册时间。这些就是这个数据表的列。

我们需要将每一个玩家都记录到这个表中,那么一个玩家的所有数据就占一行。

表现在MySQL数据表中就如下图所示。

在实际应用中我们就可以通过uid查找到玩家的注册时间第一次登陆时间上次登录时间和玩家名。

Redis

Redis是一款既可以基于内存也可以持久化的Key-Value型数据库。

此数据库在Apollo插件开发中主要用来存储一些经常需要改变的值。

操作过程非常像Python中的dict此处不再举例说明。

例如玩家的在线统计——一个玩家进入服务器时,就需要操作数据库,修改总在线+1。同理退出时需要操作数据库修改总在线-1。

MongoDB

MongoDB是一款介于关系数据库和非关系数据库之间的数据库。

它可以轻松地将Python中常用的dict或json对象存储到数据库中并很方便地对其中某个参数进行筛选和查询。

还是以上方的玩家信息为例假如一个玩家的json对象是{"uid":1,"name":"玩家1","reg_date":123,"last_login":123}

那么将其插入到数据库中,即可通过{"uid":1}这样的条件来查询到玩家的整条json信息。

开发者可以根据自己的习惯和实际用途,来选择使用不同的数据库。

前端工具

这里将以Navicat为例给大家演示如何使用连接到服务器的MySQL数据库。其他数据库连接同理。

Navicat官网链接: https://www.navicat.com.cn/

视频教程