首页 > 代码库 > SSDB之php API简析

SSDB之php API简析

一、介绍

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+ \nBlock  := Size \n Data \nSize   := literal_integerData   := 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 服务器, 然后输入下面的代码(用最后一行空行结束):

3get3key

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

2ok3val

在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;        }

 

SSDB之php API简析