发布于 2014-10-14 09:24:37 | 949 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的SSDB中文文档,程序狗速度看过来!

SSDB NoSQL 数据库

SSDB是一个开源的高性能数据库服务器, 使用Google LevelDB作为存储引擎, 支持T级别的数据, 同时支持类似Redis中的zset和hash等数据结构, 在同时需求高性能和大数据的条件下, 作为Redis的替代方案.


本文为大家介绍的是ssdb的php api的用法和示例代码,感兴趣的同学参考学习下。

SSDB是一个开源的高性能数据库服务器, 使用Google LevelDB作为存储引擎, 支持T级别的数据, 同时支持类似Redis中的zset和hash等数据结构, 在同时需求高性能和大数据的条件下, 作为Redis的替代方案.

一、介绍

SSDB的PHP API方便的提供了php的开发接口。git地址 https://github.com/ideawu/ssdb.git ,SSDB官方文档地址  http://ssdb.io/zh_cn/

二、SSDB类结构图

PHP 接口源码文件在 /api/php/SSDB.php

三、SSDB网络协议

报文

Packet := Block+ '\n'
Block  := Size '\n' Data '\n'
Size   := literal_integer
Data   := size_bytes_of_data

请求

Request := Cmd Blocks*
Cmd     := Block

请求命令包括: get, set, del, ...

响应

Response := Status Block*
Status   := Block

响应状态码包括: ok, not_found, error, fail, client_error

示例

用 telnet 或者 nc 命令连接到 SSDB 服务器, 然后输入下面的代码(用最后一行空行结束):

3
get
3
key

你将看到类似这样的响应:

2
ok
3
val

在api中的send处理中,对于cmd和argus按照网络协议的格式发送给服务器。相关代码如下

 
private function send($data){
                $ps = array();
                foreach($data as $p){
                        $ps[] = strlen($p);
                        $ps[] = $p;
                }
                $s = join("\n", $ps) . "\n\n";
                if($this->debug){
                        echo '> ' . str_replace(array("\r", "\n"), array('\r', '\n'), $s) . "\n";
                }
                try{
                        while(true){
                                $ret = @fwrite($this->sock, $s);
                                if($ret == false){
                                        $this->close();
                                        throw new SSDBException('Connection lost');
                                }
                                $s = substr($s, $ret);
                                if(strlen($s) == 0){
                                        break;
                                }
                                @fflush($this->sock);
                        }
                }catch(Exception $e){
                        $this->close();
                        throw new SSDBException($e->getMessage());
                }
                return $ret;
        }


最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务