ssdb自己的协议非常简单,可以非常容易的封装和解析。
请求
官网的协议描述
Packet := Block+ '\n'
Block := Size '\n' Data '\n'
Size := literal_integer
Data := size_bytes_of_data
Request := Cmd Blocks*
Cmd := Block
比如 get key 是a的命令是这样的
3\nget\n1\na\n\n
回复
协议描述文件
Response := Status Block*
Status := Block
响应状态码包括: ok, not_found, error, fail, client_error
比如get a 时返回 "b"
响应就是
2\nok\n1\n1\n\n
SSDB 的协议是应用无关的, 它只关心 Block, 而不管 Block 是什么数据,什么数据类型,根据命令的类型来决定, 所以在处理响应的时,会根据命令来处理返回数据。而redis会在协议里有描述,比如
redis中多条批量回复的第一个字节为 "*" , 后跟一个字符串表示的整数值, 这个值记录了多条批量回复所包含的回复数量,在SSDB处理的时候,你需要为每一类的命令单独处理,有点不方便
Links:
http://ssdb.io/docs/zh_cn/protocol.html
http://redis.readthedocs.org/en/latest/topic/protocol.html
ssdb Elixir 客户端
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。