• 2013-11-06

    SSDB 采用里程碑式版本发布机制

    Views: 41637 | 4 Comments

    从 1.6.4 版本开始, SSDB 采用里程碑式的版本发布机制, 每一个稳定的版本都会作为 git 库中的一个 branch, 而 master 的代码是最新的待发布的代码. 在 github 项目主页, 默认显示的是最新的稳定版本的分支. 目前, 最新的 SSDB 稳定版本是 stable-1.6.4.

    目前, master 上的代码相对 stable-1.6.4 版本, 有了比较大的改动, 加入了多线程支持. 例如, scan 等命令都会在单独的线程中执行, 所以, 即使 scan 非常大的数据, 也不会阻塞别的操作.

    SSDB 是一个 NoSQL 数据库, 兼容 Redis 接口, 存储容量是 Redis 的 100 倍以上, 采用 LevelDB 作为存储引擎. 项目地址: https://github.com/ideawu/ssdb

    Posted by ideawu at 2013-11-06 22:18:21 Tags: , ,
  • 2013-10-23

    SSDB 增加 zrank, zrange 命令

    Views: 51199 | 6 Comments

    Zrank/zrrank 命令是 zset 数据结构的一个特有命令, 用于求某个元素在集合中的排序名次. 对于 Redis 来说, 数据都在内存里, 而且是排序的, 所以求元素的排名(indexOf)可以很快, 但因为 SSDB 的数据主要在硬盘中, 所以, 求排序名次可不是那么简单.

    基于这个考虑, SSDB 原来并不支持 zrank 命令. 但 zrank 命令的需求还是有的, 经过考虑, 所以在 1.6.3 版本中增加了 zrank 命令.

    不过, 使用这个命令应该是在离线环境中, 而不能是在线上生产环境中, 因为 zrank 的实现是通过遍历数据(相当于全表扫描).

    另外, SSDB 还增加了 zrange/zrrange 命令, 相当于数组的 slice 操作或者 MySQL 的 limit 操作. 和 zrank 类似, zrange 也是通过表扫描来实现的, 只要 offset 越大, 速度就越慢. 所以, 在 offset 小于 200 时, 可以在线上生产环境使用, 否则最好是离线环境中使用.

    Posted by ideawu at 2013-10-23 13:05:07 Tags: , , ,
  • 2013-10-17

    SSDB 的 C++ 客户端接口

    Views: 44379 | 11 Comments

    SSDB 本身是用 C++ 语言编写的, 所以天生就支持 C++ 客户端 API. SSDB 源码中自带的 leveldb-import.cpp, ssdb-dump.cpp 等程序, 也是 C++ 客户端的例子. 不过, 这些 API 依赖整个项目, 编译和链接的参数非常繁琐. 因此, 有必要开发对用户友好的 C++ API, 减少依赖, 方便开发 SSDB 的 C++ 客户端应用.

    我很高兴的通知, 接口简单, 对用户友好的 SSDB 的 C++ 客户端 API 已经有了! 并且, 有了相应的 API 文档(我相信文档对于一个软件的作用是非常重要的). 我可以用一行代码了显示这个 API 的使用是如何的简单:

    g++ -o hello-ssdb hello-ssdb.cpp libssdb.a
    

    hello-ssdb.cpp 就是一个使用了 SSDB C++ API 的客户端程序, 上面的一行命令用于编译这个程序, 生成可执行文件.

    SSDB C++ API 包括了两类方法, 一类是简单方法, 另一类是语义化的方法. 简单方法就是在一个统一的函数中传递任意命令和参数. 而语义化的方法即类型 get(), set() 这样顾名思义的方法. 因为时间的缘故, 后一种方法还没有实现.(更新: 两类方法都已实现.)

    欢迎大家使用, 如果有什么意义, 欢迎反馈!

    SSDB C++ 客户端接口文档: http://www.ideawu.com/ssdb/docs/cpp/

    Posted by ideawu at 2013-10-17 23:27:05 Tags: , ,
  • 2013-10-08

    SSDB 支持 Snappy 压缩了

    Views: 34891 | 9 Comments

    SSDB 数据库服务器从 1.6.2 版本开始, 支持 Snappy 数据压缩. Snappy 是一个由 Google 公司开发的压缩库, 在 Google 内部应用非常广泛, 同时也在很多知名开源软件中得到应用, 如 Cassandra, Hadoop 等.

    LevelDB 也是可以使用 Snappy 的, 但不是强制绑定, 而是在编译 LevelDB 时自动判断使用. 但是, 在编译 LevelDB 时要添加关于 Snappy 的参数, 而且在编译使用了 LevelDB 的程序(如 SSDB)中也要添加关于 Snappy 的参数, 所以经常出现编译出错.

    Continue reading »

    Posted by ideawu at 2013-10-08 23:32:35 Tags: , ,
  • 2013-10-06

    用SSDB快速开发一个微博(Twitter)demo

    Views: 28187 | 3 Comments

    对于新浪微博或者 Twitter 这样的应用, 其最核心的数据结构就是排序列表. 例如, 我关注的人, 关注我的人, 我发的微博, 我收到的微博, 等等. 这些业务功能点都是排序列表数据结构, 根据时间排序.

    这样的数据结构如果用关系数据库(如 MySQL)来存储的话, 需要设计一个表, 表和一个外键字段, 作为列表的名字, 还要有一个 int 型时间字段用于排序, 还有第 3 个字段就是列表的元素(如 uid, 微博 ID). 不过, 因为 MySQL 一旦表的数据量达到 100 万行数据时, MySQL 就基本无法满足实时查询的要求了.

    Continue reading »

    Posted by ideawu at 2013-10-06 15:02:48 Tags: ,
  • 2013-09-29

    SSDB 入门基础 PPT

    Views: 16636 | 2 Comments

    国内下载.

    Posted by ideawu at 2013-09-29 21:53:16
|<<<2345678910>>>| 6/12 Pages, 70 Results.