SSDB 是一个 C/C++ 语言开发的高性能 NoSQL 数据库, 支持 zset(sorted set), map(hash), kv, list 等数据结构, 用来替代或者与 Redis 配合存储十亿级别的列表数据. SSDB 同时也被国内外业界的众多互联网企业所使用, 如 QIHU 360, TOPGAME, 汽车之家, 比亚迪等.
项目主页: https://github.com/ideawu/ssdb
SSDB 文档: http://ssdb.io/docs/zh_cn/
谁在用 SSDB: http://ssdb.io/docs/zh_cn/users.html
官方QQ群: 170983373
2014开源中国开源世界高峰论坛, 中国开源优秀项目奖项目
SSDB 的主要特点:
- 支持 zset, map/hash, list, kv 数据结构, 可替代 Redis
- 特别适合存储大量集合数据, 支持丰富的数据结构: key-value, key-map, key-zset, key-list.
- 使用 Google LevelDB 作为存储引擎
- 支持主从同步, 多主同步
- 客户端支持 PHP, C++, Python, Lua, Java, Ruby, nodejs, Go 等
- 内存占用极少
- 图形化界面管理工具(phpssdbadmin)
PHP API
<?php require_once('SSDB.php'); $ssdb = new SimpleSSDB('127.0.0.1', 8888); $resp = $ssdb->set('key', '123'); $resp = $ssdb->get('key'); echo $resp; // output: 123
PHP API 文档: http://ssdb.io/docs/zh_cn/php/
SSDB vs Redis
SSDB 架构
好的,谢谢!现在通过修改官方的api,初步实现了异步,确实可以的。 Reply
while(true)
{
send(cmd); //发命令
Event();//判断是否有数据接收,这里面的过程是非阻塞的。
}
其中发送命令和接收数据的逻辑作者都写好了,把这个逻辑理一下,改为非阻塞接口,就差不多了。当然这个过程还不是太完善,我也是刚刚学习这种做法,有更好的方法可以交流下。 Reply
不知道现在是不是已经支持了,自动超时机制在应用中很重要。 Reply
No route for index.php!
F:\ssdb\phpssdbadmin\iphp\framework\App.php:95 route()
F:\ssdb\phpssdbadmin\iphp\framework\App.php:47 execute()
F:\ssdb\phpssdbadmin\index.php:9 run()
Copyright©2014 ideawu. All rights reserved. 3.00 ms
请问这个route()函数哪里的;我的ssdb配在本地(127.0.0.1),操作系统是win7;
这个错误要如何解决?另外登陆的user和password还需要设置吗?应该怎样设置? Reply
phpinfo();
?>可以正确显示;
如果沿用原来的内容,页面上显示
No route for index.php!
F:\ssdb\phpssdbadmin\iphp\framework\App.php:95 route()
F:\ssdb\phpssdbadmin\iphp\framework\App.php:47 execute()
F:\ssdb\phpssdbadmin\index.php:9 run()
Copyright©2014 ideawu. All rights reserved. 11.00 ms
nginx下的log显示错误如下:
我的nginx改了8000端口,没用80端口。nginx在c盘,phpssdbadmin在f盘;这个是nginx配置文件主要内容:
location ./phpssdbadmin {
try_files $uri $uri/ ./phpssdbadmin/index.php?$args;
}
location / {
root html;
index index.html index.htm ;
}
location ~ \.php$ {
root F:/ssdb/phpssdbadmin;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
} Reply
一个 ssdb-server 实例占用的内存瞬时(有可能, 而且即使达到, 也只是持续短时间)最高达到(MB):cache_size + write_buffer_size * 66 + 32
这是对于压缩选项没有开启的情况, 如果 compression: yes, 计算公式是:cache_size + 10 * write_buffer_size * 66 + 32
你可以调整配置参数, 限制 ssdb-server 的内存占用.
ref: http://ssdb.io/docs/zh_cn/config.html Reply