SSDB数据库使用手册

浏览12627
更新时间2022-04-11

SSDB 的网络协议超级简单!

报文

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

请求

Request := Cmd BlocksCmd     := Block

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

响应

Response := Status BlockStatus   := Block

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

示例

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

3get3key

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

2
ok
3
val

高性能的 SSDB 协议解析器

#include <stdlib.h>#include <string.h>int len = buffer->size();char ptr = buffer->data();while(len > 0){char data = (char *)memchr(ptr, '\n', len);if(data == NULL){break;
    }
    data += 1;int num = data - ptr;if(num == 1 || (num == 2 && ptr[0] == '\r')){// Packet received.return OK;
    }// Size receivedint size = (int)strtol(ptr, NULL, 10);

    len -= num + size;
    ptr += num + size;if(len >= 1 && ptr[0] = '\n'){
        len -= 1;
        ptr += 1;
    }else if(len >= 2 && ptr[0] == '\r' && ptr[1] == '\n'){
        len -= 2;
        ptr += 2;
    }else{break;
    }// Data received}

给 SDK 开发者的建议: Data 可以包含任意字符, 包括 \r, \n, \0..., 所以你不要认为 Data 里面不会出现这些字符.

相关视频

更多

免费

php8,我来也
初级php8,我来也

321845次学习

收藏

免费

Thinkphp6.0正式版视频教程
中级Thinkphp6.0正式版视频教程

382466次学习

收藏

免费

细说PHP第一季
中级细说PHP第一季

282856次学习

收藏

免费

简单聊聊PHP创业那点事
初级简单聊聊PHP创业那点事

13418次学习

收藏

精品课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时 | 62.5万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时 | 39.7万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时 | 73.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号