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 架构
1. 无法获得 key、hset、zset 的记录数量。
2. 数据库的大小暂时无法通过接口查询获得。
ssdbAdmin 项目地址:https://github.com/jiorry/ssdbAdmin Reply
刚刚用SSDB替换上,观察几天看看。
另外, scan 是不是有bug?
有key a , a0
scan a "" 2
只能出来a0 ,没有>=的效果
还有,刚刚加入QQ群(sker),请群主通过一下 :D Reply
请问目前的 ssdb 版本还不支持对 hash 的直接删除操作,只能对 hash 的单个 field 进行删除操作是可以的,另外 hash 的过期时间有计划安排什么时候能够支持?
redis 127.0.0.1:22121> hmset mh f1 "hello"
OK
redis 127.0.0.1:22121> hget mh f1
"hello"
redis 127.0.0.1:22121> del mh
(integer) 1
redis 127.0.0.1:22121> hget mh f1
"hello"
redis 127.0.0.1:22121> hdel mh f1
(integer) 1
redis 127.0.0.1:22121> hget mh Reply
ssdb del time used 4383730000
redis write-rand time used 21521257000
ssdb write-rand time used 24333315000
redis read time used 7864050000
ssdb read time used 21109499000
redis rand-read time used 8145284000
ssdb rand-read time used 8812935000
redis write-const time used 6037345000
ssdb write-const time used 7923185000
redis rand-write-const time used 4707105000
ssdb rand-write-const time used 7797941000
db单实例 单java客户端测试(jedis客户端分别连接redis-server和ssdb) 100000条记录 每条记录4k大小 时间单位是纳秒 ssdb缓存大小是1G mac下面进行测试
写性能ssdb和redis接近 但是读性能ssdb只有redis一半左右,请问是否有其他参数有所影响呢?还是jedis-client实现访问ssdb时效率的问题?
谢谢! Reply