SSDB-个快速的用来存储十亿级别列表数据的 NoSQL 数据库

SDB 是一个快速的 NoSQL 数据库, 用来存储十亿级别的列表数据

SSDB 是稳定的, 生产环境使用的, 已经在许多互联网公司如奇虎 360 得到广泛使用

下载和安装

 wget --no-check-certificate https://github.com/ideawu/ssdb/archive/master.zip
$ unzip master
$ cd ssdb-master
$ make
$ # 将安装在 /usr/local/ssdb 目录下
$ sudo make install

# 启动主库
$ ./ssdb-server ssdb.conf

# 启动为后台进程
$ ./ssdb-server -d ssdb.conf

# 启动从库
$ ./ssdb-server ssdb_slave.conf

# 启动 ssdb 命令行
$ ./tools/ssdb-cli -p 8888

# 停止 ssdb-server
$ kill `cat ./var/ssdb.pid`


从 Redis 迁移到 SSDB

工具

在 tools 目录中的 redis-import.php PHP 脚本可以用来将 Redis 服务器上的数据, 拷贝到 SSDB 服务器上.

用法:

php redis-import.php redis_host redis_port redis_db ssdb_host ssdb_port

参数:

    redis_host: Redis 运行所在的 IP 或者主机名
    redis_host: Redis 监听的端口
    redis_db: Redis 的 DB 编号
    ssdb_host: SSDB 运行所在的 IP 或者主机名
    ssdb_host: SSDB 监听的端口

SSDB 支持 Redis 协议和客户端, 所以你可以使用 Redis 的客户端来连接 SSDB 进行操作.

Clients

SSDB 源码仓库中, 内置了许多语言的客户端, 这些便是所谓的官方客户端.包括C++,Cpy,C#,Go,Java,Lua,NodeJS,PHP,Python,Ruby等。

php-client 文档说明见:点此链接

SDB 网络协议定义

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

高性能的 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 received
	int 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
}

a dressy belt
gay porn You are getting a horse

such as the material used to make the handbag
gay pornA Nike Jordan is one of the best basketball shoes ever made
cartoon porn
此条目发表在 网站开发 分类目录,贴了 标签。将固定链接加入收藏夹。

评论功能已关闭。