OSChina 8-1 期推荐 K/V数据库 LevelDB

小卒过河
 小卒过河
发布于 2011年08月01日
收藏 16

OSChina 8-1 期(8月第1周)推荐的开源软件是Leveldb。LevelDB是一个google实现的非常高效的kv数据库,目前的版本1.2能够支持billion级别的数据量了。 在这个数量级别下还有着非常高的性能,主要归功于它的良好的设计。特别是LSM算法。

LevelDB 是单进程的服务,性能非常之高,在一台4个Q6600的CPU机器上,每秒钟写数据超过40w,而随机读的性能每秒钟超过10w。

示例代码:

#include 
#include "leveldb/include/db.h"

leveldb::DB* db;
leveldb::Options options;
options.create_if_missing = true;
leveldb::Status status = leveldb::DB::Open(options, "/tmp/testdb", &db);
assert(status.ok());

std::string value;
leveldb::Status s = db->Get(leveldb::ReadOptions(), key1, &value);
if (s.ok()) s = db->Put(leveldb::WriteOptions(), key2, value);
if (s.ok()) s = db->Delete(leveldb::WriteOptions(), key1);
本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:OSChina 8-1 期推荐 K/V数据库 LevelDB
加载中

最新评论(10

麦地兜兜
麦地兜兜
LevelDb以及php-leveldb扩展编译

http://www.hezhiqiang.info/articles/202/compile-php-extension-of-google-leveldb
ValueError
ValueError

引用来自“戏水”的评论

只要持久化能处理好了,这种键值数据库还是有可能替代关系数据库的,在性能上键值数据库与关系数据库根本不在一个数量级上。

性能不是决定因素哇~我觉得新兴数据库应该会发展起来,但不会代替关系型数据库。
RainJ
RainJ

引用来自“红薯”的评论

引用来自“windrain”的评论

没有任何download!~~莫非并不开源?!~

通过svn获取代码

恩,拉到了,呵呵,谢谢老大!~~~
红薯
红薯

引用来自“windrain”的评论

没有任何download!~~莫非并不开源?!~

通过svn获取代码
老盖
老盖
只要持久化能处理好了,这种键值数据库还是有可能替代关系数据库的,在性能上键值数据库与关系数据库根本不在一个数量级上。
bewdx3
bewdx3

引用来自“虫虫”的评论

引用来自“何世友@PoQoP”的评论

引用来自“虫虫”的评论

哪些应用适合用这种数据库?

大型实时online应用游戏,用这种键值数据库。

但是这种键值数据库能满足一个应用的全部需求吗?还是只是某些表用这种数据库?

是的,不可能满足全部需求,连表都谈不上,一部分高并发写的应用数据会先往kv里写,就像redis用来放围脖跟贴评论或者变动高的在线数据等.不过一般最终最好还是想办法放到其他数据库里去.
这些kv现在最大的问题就是持久化和可用性到哪个程度.

虫虫
虫虫

引用来自“何世友@PoQoP”的评论

引用来自“虫虫”的评论

哪些应用适合用这种数据库?

大型实时online应用游戏,用这种键值数据库。

但是这种键值数据库能满足一个应用的全部需求吗?还是只是某些表用这种数据库?
RainJ
RainJ
没有任何download!~~莫非并不开源?!~
何世友
何世友

引用来自“虫虫”的评论

哪些应用适合用这种数据库?

大型实时online应用游戏,用这种键值数据库。
虫虫
虫虫
哪些应用适合用这种数据库?
返回顶部
顶部