SSDB

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 vs Redis

SSDB 架构

Views: 157731

433 Responses to "SSDB"

  • 项目刚上线用了最新版本1.9.6,监控dbsize返回一直都是0,info命令也是,这是为啥呢? Reply
  • 什么时候github上可以再release一个版本。上次的版本已经一年过去了。 Reply
    @hehe: 可以使用master分支。 Reply
  • 我有一个hash结构,其中某个key有上百万数据 我怎么取出这上百万的数据,如果用hgetall肯定不实现 Reply
    @xingyueshenhua: 你可以用 hscan Reply
  • ssdb的ping,dump命令,是否可用,作用是什么? Reply
  • 你好,请问对于java客户端的,大量的SSDB对象创建会不会造成过得的资源消耗,需不需要做对象的重用,或者做一个类似连接池的类管理所有SSDB连接对象呢? Reply
    @didadi: 去客户端的作者那里问比较合适。 Reply
  • 博主你好,我想请问下,ssdb在进行大量读写时,重启ssdb数据是否能保证完全落地到硬盘,会不会存在丢失的情况,我们现在是数据用纯的ssdb来做存储,望解答,谢谢 Reply
  • 我重启ssdb服务,在日志文件发现报错could not open work_dir: ./var
    启动报错
    Connection error: (111, ‘Connection refused’)
    Traceback (most recent call last):
    File "./deps/cpy/cpy.py", line 65, in ?
    execfile(dstfile)
    File "/usr/local/ssdb/_cpy_/ssdb-cli.py", line 427, in ?
    sys.exit(0) Reply
    @yuhuai: 我想知道有什么解决办法吗? 除了升级ssdb以外 Reply
  • 楼主好,在使用ssdb的过程中有几个疑问,请教下
    我使用的是ssdb c++集成
    1,重连问题:这里ssdb中的client的例子都是调用一个client来创建连接,这个连接是一个socket长连接。
    但这里没有重连机制,如果我的服务集成client后,去连接ssdb服务,断开了,没有通知我重连;且没有心跳处理。我们目前集成的处理,会自己发送ping给ssdb,通过判断是否发送成功来判断连接是否断开。
    2,分片问题;如果我部署了多个ssdb主从,我根据连接数指定进行hash分片,由于断开后不能自动重连,这里分片数据会错乱。
    两个问题都是重连相关的,这里需要自己去实现吗? Reply
    @williamqian: 1, 通过返回的错误码来决定重连,Stauts::disconnected() 方法判断。
    2. 根据 key 来哈希。 Reply
    @ideawu: 谢谢! Reply
  • 为什么不在官方jar中加入管道模式呢?应用层面如过使用这种方式性能会有很高的提升吧0.0 Reply
  • 您好,执行部分命令遇到如下提示,这是怎么回事呢
    Traceback (most recent call last):
    File "./deps/cpy/cpy.py", line 69, in <module>
    execfile(dstfile)
    File "/usr/local/ssdb/_cpy_/ssdb-cli.py", line 522, in <module>
    sys.stdout.write((repr_data(resp.data) + ‘\n’))
    TypeError: unsupported operand type(s) for +: ‘int’ and ‘str’ Reply
    @xff: 是已知bug,需要升级一下. Reply
    @xff: 改了第522行。。可以显示了。。。。。。 Reply

« [1][2][3][4][5][6][7][8][9] » 2/19

Leave a Comment