-
2013-01-11
SSDB(LevelDB 服务器) PPT
Views: 39078 | No Comments -
2013-01-10
SSDB与Redis命令对比
Views: 45934 | 9 CommentsRedis SSDB kv get get set set del del incr/incrBy incr decr/decrBy decr getMultiple multi_get setMultiple multi_set del(multiple) multi_del keys scan(for kv type only) Redis SSDB hashmap hget hget hset hset hdel hdel hIncrBy hincr hDecrBy hdecr hKeys hkeys hVals hscan hMGet multi_hget hMSet multi_hset hLen hsize Redis SSDB zset zScore zget zAdd zset zRem zdel zRange zrange/zscan zRangeByScore zscan zIncrBy zincr zDecrBy zdecr zCount zCard zsize -
2013-01-06
LevelDB 服务器 SSDB 支持主从(master-slave)同步了!
Views: 45962 | 5 Comments经过前段时间的连续奋战, 前两晚的代码清理和收尾, 基于 LevelDB 的 KV(支持数据类型包括 hashmap, zset) 存储服务器 SSDB 终于发布了 1.2.0 版本. 这是一个里程碑式的版本, 因为从此 SSDB 支持了主从同步(master-slave replication), 再加上在线备份功能, SSDB 已经成为一个真正的生产环境的存储服务器!
Google 的 LevelDB 存储引擎保证了 SSDB 至少能存储 T 级别的数据, 并在上面进行快速的查询, 有报告称 100G 级别的数据已经在网站上正常工作. 而 SSDB 本身实现的备份和主从同步特性, 则是对生产环境的必要支持 - 负载均衡.
-
2013-01-05
SSDB 解决了 Snappy 导致 LevelDB 编译失败的问题
Views: 44235 | 15 Comments有不少用户反馈, 对于曾经编译和安装过 LevelDB 和 Snappy 的环境, 编译 SSDB 会出错. 问题出在 LevelDB 无法正确地找到 Snappy 的库(libsnappy), 而且, SSDB 本身没有考虑 -lsnappy 选项.
最终我决定手动修改 LevelDB 的 Makefile 和 build_detect_platform 两个文件, 完全放弃 Snappy. 但 SSDB 将会在未来的版本中增加 Snappy(直接打包附带源码), 而不是使用系统已安装的 Snappy.
请下载 SSDB 1.1.3:
https://code.google.com/p/zdb/downloads/listhttps://github.com/ideawu/ssdb开发进度预告: 经过前段时间紧张的开发, 支持主从(master-slave)复制功能的 SSDB 版本 1.2 已经基本开发完毕, 目前在整理代码, 近几天就可以发布! 该主从同步方案用 LevelDB 存储库的更新 Log, 并按 LevelDB 内部的序号组织, 所以主从同步可以容忍非常糟糕的网络环境和非期待的异常当机.
-
2012-12-28
在PHP代码中使用LevelDB
Views: 47451 | 3 Comments众所周知, LevelDB 只是一个 C/C++ 的编程语言库, 所以, PHP是无法直接使用 LevelDB 的. 如果 PHP 项目想要使用 LevelDB, 一种方法是用 C 语言开发, 把 LevelDB 封装成 PHP 的一个模块, 另一种方法是将 LevelDB 封装成一个网络服务器.
开发 PHP 的 LevelDB 模块的方式适用性不是很高, 因为这种模式限定了必须是单机存储而且必须和 PHP 处在同一台机器. 在代码和数据分离的原则下, 将 LevelDB 封装成一个网络服务是更佳的选择.
SSDB 就是一个 LevelDB 的服务器(LevelDB Server), 以 LevelDB 作为存储引擎, 支持 PHP/Java/Python/C/C++ 等客户端. 下面是一个 PHP 连接 SSDB, 也即 PHP 使用 LevelDB 的例子:
<?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
完整 API 见 SSDB 项目 Wiki.
SSDB 已经在 IT 牛人博客聚合网站得到应用, 非常稳定. 而且, SSDB 支持在线备份功能, 可以通过网络备份数据, 不再担心数据丢失. SSDB 还支持主从同步复制(Replication), 可用于负载均衡.
SSDB - LevelDB Server 下载地址: https://code.google.com/p/zdb/downloads/list
-
2012-12-27
SSDB 已经支持在线备份功能!
Views: 37770 | 12 CommentsSSDB 1.1.0 已经发布! 这个版本支持了在线备份功能, 可以在不停止服务的情况下备份服务器数据. 这个功能让 SSDB 更加成为一个真正生产环境的存储服务器!
备份
./tools/ssdb-dump 127.0.0.1 8888 ./backup_dir
这条命令从监听在 127.0.0.1:8888 的 SSDB 服务器上备份全量的数据, 保存到本地新创建的目录
backup_dir
, 这个目录其实是一个 LevelDB 的数据库(db).恢复
恢复方案非常简单.
将
backup_dir
传输到服务器, 修改新ssdb服务器的配置文件, 将 SSDB 使用的数据库名改为backup_dir
, 然后重启 SSDB 即可.下一步
SSDB 的下一个特性将是同步复制, 也即常说的"主从(Master-Slave)架构", 一旦同步复制功能加入进来, SSDB 将变得更加适合生产环境使用. 毕竟, 单份的数据总是让人不放心, 必须得复制多份保存下来才能让人安心. ssdb-dump 虽然可以达到此目的, 但还是一种被动的备份方式. 而同步复制功能将是分布式的基础. 主从架构还能用作简单的负载均衡.
SSDB 是一个 LevelDB 服务器, 项目主页: https://code.google.com/p/zdb/