MXDB

高性能NoSQL数据库 返回云猫

> curl add table=user value={name:"test",pass:"123456789"}

> curl find table=user query={name:"test"}

> return {_id:"1",_time:"1493687636",name:"test",pass:"123456789"}

MXDB

MXDB是一款高性能的NoSQL数据库,不限制结构的存储json格式数据,有着类似KV数据库一样的便捷,同时还可以像传统SQL数据库一样方便的查询。另外MXDB也支持原子性事务操作。

PHP Client

在php程序中我们可以很容易的使用MXDB,php client for mxdb可以在我们网站上下载到。

# 连接数据库 add

                

require_once YOUR_PATH.'/mxdb.php';

$mxdb = new mxdb;

$mxdb->connect("http://127.0.0.1:8081","mydb","123456789",2000);

...

...

$mxdb->close();

使用connect()函数可以让我们链接到正在运行的数据库进程,ta包含4个参数,依次是“数据库连接地址”、“数据库名”、“数据库密码”、“缓存大小”。MXDB的运行端口为8081,一般本地连接时我们使用http://127.0.0.1:8081即可。远程连接则需要把127.0.0.1替换为远程服务器的IP。

首次连接数据库,会自动设置密码为当前使用密码。

# 新增数据 get

在user表中,新增一条用户数据。

                

$data = array(

"name"=>"damaomao",

"pass"=>"sdkjg89sdh45s8yi",

"phone"=>13843838438,

"email"=>"damaomao@mao10.com"

);

$mxdb->add("user",$data);

执行后返回数据:

                

stdClass Object ( [code] => 200 [data] => 25 [queryTime] => 0.0044341087341309 )

code为200时,表示执行成功。data值为新增的数据ID。queryTime为执行时间(秒)。

# 获取指定ID数据

                

$mxdb->get("user","25");

执行后返回数据:

                

stdClass Object ( [code] => 200 [data] => stdClass Object ( [_id] => 25 [_time] => 1493687437 [name] => damaomao [pass] => sdkjg89sdh45s8yi [phone] => 13843838438 [email] => damaomao@mao10.com ) [queryTime] => 0.0044341087341309 )

code为200时,表示执行成功。data值为查询到的数据。queryTime为执行时间。

data->_id为数据ID,data->_time为数据创建时的时间戳。

# 查询数据 find

查询post表中,views大于100,author等于“damaomao”的数据。

                

$data = array(

"name"=>array(

"key"=>100

"compare"=>">"

),

"author"=>array(

"key"=>"damaomao"

"compare"=>"=="

)

);

$mxdb->find("user",$query,0,20);

执行后返回数据:

                

stdClass Object ( [code] => 200 [data] => stdClass Object ( [count] => 20 [result] => array(...) ) [queryTime] => 0.0044341087341309 )

code为200时,表示执行成功。data->count为查询到的数据数量,data->result为查询到的所有数据组成的数组。queryTime为执行时间。

find的最后2个参数中,我们设置了0和20。分别表示从ID为0的数据开始查询,最多返回20条有效数据。若需要从ID为125的数据开始查询,最多返回30条数据,则写为$mxdb->find("user",$query,125,30)。

# 删除数据 del

删除post表中ID为12的数据。

                

$mxdb->del("user",12);

执行后返回数据:

                

stdClass Object ( [code] => 200 [data] => 12 [queryTime] => 0.0044341087341309 )

code为200时,表示执行成功。data值为已删除的数据ID。queryTime为执行时间。

# 更新数据 update

更新user表中ID为25的数据。

                

$data = array(

"name"=>"damaomao",

"pass"=>"dahsdfhsdsfs",

"email"=>"damaomao@mao10.com"

);

$mxdb->update("user",25,$data);

执行后返回数据:

                

stdClass Object ( [code] => 200 [data] => 25 [queryTime] => 0.0044341087341309 )

code为200时,表示执行成功。data值为新增的数据ID。queryTime为执行时间。

相比新增数据中的示例中,我们修改了该用户的密码,同时移除了phone字段。

# 批量操作数据 batch

批量执行新增、更新和删除的操作。

                

...

$mxdb->batch(array(

array(

"type"=>"add",

"table"=>"user",

"value"=>$data_1

),

array(

"type"=>"update",

"table"=>"user",

"id"=>25,

"value"=>$data_2

),

array(

"type"=>"del",

"table"=>"post",

"id"=>12

)

));

执行后返回数据:

                

stdClass Object ( [code] => 200 [data] => success [queryTime] => 0.0044341087341309 )

code为200时,表示执行成功。queryTime为执行时间。

批量操作是原子性的,任何一项操作失败,其他所有操作都不会进行。

About Us

郑州云猫电子商务有限公司,开发了MXDB数据库,并将MXDB应用在我们的多个项目中。Mao10CMS、云猫快速建站平台、微信应用以及App服务端等,都是使用了MXDB作为数据存储的。

MXDB的高效、易用,也体现着我们公司一贯秉承的“软件开箱即用”的开发理念。期待未来有更多用户使用MXDB,并将她应用到更多的软件开发领域当中。

© 郑州云猫电子商务有限公司#业务咨询:1795413891@qq.com#MXPHP