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: 157802

433 Responses to "SSDB"

  • 您好!麻烦问下为什么我搭建的双主环境,setx 的key 过了失效时间失效之后,我再setx设置该key,然后读取该key提示找不到这个key的值。
    setx hh 1 10
    10秒之后…
    setx hh 1 10
    get hh
    not_found Reply
    @messi: Hi, 有可能是你的配置有问题, 麻烦把配置贴到 github issue 上去. Reply
    @ideawu: 谢谢!已经解决了 type 设置错了应该是 mirror Reply
  • @ideawu,ssdb用的leveldb的版本是1.14.0,现在leveldb的最新版本是1.15.0,博主准备采用最新的leveldb版本吗? Reply
  • ideawu 你好,我在使用 ssdb-stable-1.6.8.8 的 C++ 接口调用 scan 和 hscan 命令时发现,当所获取的数据大于500000 时(具体数据不详),会有内存溢出问题,请问是这样的吗?

    调用代码如下:
    std::vector<std::string> * resp = const_cast<std::vector<std::string> *>(client->request("hscan",…,"-1"))

    当调用 resp->size() 会有内存访问违规 Reply
  • 你好,请问一下ssdb在机械硬盘和固态硬盘在读写方面差距大吗?为了保证ssdb在读方面的能力是否一定得用固态硬盘? Reply
    @kisshere:
    冯,诺依曼的 理论告诉我们,如果你不用内存,你就必须用外存。 Reply
  • SSDB 如何像 Mysql 这样 ,动态条件查询???

    说实话,如果只是和 redis 一样,存储点数据,不动态条件查询,那我还不如用 redis。 Reply
    @Raymond: 感觉你的需求适合用mongodb Reply
  • 方便的话,是否可以做一个SSDB和Mysql数据同步的程序?这个需求应该比较大~ Reply
    @小吴: mysql 和 ssdb 是两种不同的数据库,mysql 是关系型的,ssdb 是kv型的,数据的存储格式和表现形式都不同,同步不容易吧 Reply
    @cjfeii: 可以把mysql做静态, ssdb做缓存,用处不一样,同步不容易但用的场景会比较多 Reply
    @小吴: ssdb 只支持单个命令的事务,mysql 可以支持较大的事务,这个也要考虑吧。ssdb 如果只是做缓存的话,只关心清理、更新缓存不就可以啦。 Reply
  • virtual const std::vector<std::string>* request(const std::string &cmd) = 0;,这个接口用来做什么的,能否告诉我哪里有资料关于它的用法,或者如何使用,再或者Deamo来一个呗 Reply
  • 你好,看到文档中说明“不要在生产环境中使用 Windows 操作系统来运行 SSDB 服务器. 如果你确实必须使用 Windows 操作系统, 请在上面运行一个 Linux 虚拟机, 然后再让 SSDB 运行于这个虚拟机之中.”,请问如果直接运行在windows上回怎样? Reply
    @Ray: 会性能很差! Reply
  • 请问go的包在哪了,http://ssdb.io/docs/go/index.html 这里没有发现呢 Reply
  • 我们目前尝试使用SSDB,版本是最新的1.6.8.8。

    使用过程中发现了体积巨大的 日志文件,内容几乎都是一样的:

    ssdb-server.cpp(85): accept failed! Too many open files

    请问这是什么原因造成的,应该如何避免呢? Reply
    @lxrj: 你好, 请有效利用文档, 多看文档 http://ssdb.io/docs/zh_cn/config.html Reply
    @ideawu: 直接说这个地址,对小白来说可能更容易定位一些,http://www.ideawu.net/blog/archives/740.html Reply

« [8][9][10][11][12][13][14][15][16] » 12/19

Leave a Comment