分类

安卓应用安卓游戏

编程软件 数据库类

LevelDB数据库

LevelDB数据库 v1.22官方版

大小:316 KB

语言:简体中文系统:WinXP, Win2003, Vista, Win7, Win8, Win10

类别:数据库类时间:2020-09-20 12:31

LevelDB数据库是一款优秀的kv数据库,由Google官方开发,具有良好的性能,尤其是LSM算法,可实现字符串键到字符串值的有序映射,新版本支持billion级别的数据量,虽说是单进程,但是处理速度非常的高,性价比高,需要的朋友赶快下载吧!

LevelDB数据库功能

1、键和值是任意的字节数组。

2、数据是按键排序存储的。

3、调用者可以提供一个自定义比较函数来覆盖排序顺序。

4、基本的操作是Put(key,value)、Get(key)、Delete(key)。

5、在一个原子批中可以进行多次修改。

6、用户可以创建瞬时快照,以获得数据的一致视图。

7、在数据上支持向前和向后迭代。

8、使用Snappy压缩库对数据进行自动压缩。

9、外部活动(文件系统操作等)通过虚拟接口中转,因此用户可以自定义操作系统的交互。

LevelDB数据库特点:

1、key和value都是任意长度的字节数组;

2、entry(即一条K-V记录)默认是按照key的字典顺序存储的,当然开发者也可以重载这个排序函数;

3、提供的基本操作接口:Put()、Delete()、Get()、Batch();

4、支持批量操作以原子操作进行;

5、可以创建数据全景的snapshot(快照),并允许在快照中查找数据;

6、可以通过前向(或后向)迭代器遍历数据(迭代器会隐含的创建一个snapshot);

7、自动使用Snappy压缩数据;

8、可移植性;

LevelDB数据库使用教程

向数据库插入数据的操作如下:

leveldb::DB* LocalCacheDB:: m_pDB=NULL;

leveldb::Options LocalCacheDB:: m_options;

bool WriteToDB(INFO& info)

{

leveldb::WriteOptions wo;

leveldb::ReadOptions ro;

wo.sync = false;//考虑是否异步

//将info转为char[]

int nLen = sizeof(INFO);

char* chTmp = new char[nLen];

ZeroMemory(chTmp, nLen);

memcpy(chTmp,&info, nLen);

char chKey[10];

ZeroMemory(chKey, 10);

leveldb::Iterator *iter = m_pDB->NewIterator(ro);

if (iter == NULL)

{

return false;

}

iter->SeekToLast();//last的key最大,这里是自己定义的比较函数按key排序

if (!iter->Valid())

{

//数据库为空

itoa(1, chKey, 10);//key从1开始

}

else

{

leveldb::Slice sliceKey;

sliceKey=iter->key();

HPR_INT32 nKey=0;

nKey=atoi(sliceKey.data());

nKey++;

itoa(nKey,chKey,10);

}

delete iter;//切忌在使用完sliceKey之前删除iter

leveldb::Status s = m_pDB->Put(wo,chKey,leveldb::Slice(chTmp,nLen));

delete[] chTmp;

if (!s.ok())

{

return false;

}

cout<<"存入一条数据 index:"<<chkey<<endl;< p="">

return true;

}

//比较函数如下:

class DBComparator:public leveldb::Comparator

{

public:

int Compare(const leveldb::Slice& a, const leveldb::Slice& b) const

{

int na,nb;

na=atoi(a.data());

nb=atoi(b.data());

if (na<nb)< p="">

{

return -1;

}

if (na>nb)

{

return +1;

}

return 0;

}

// Ignore the following methods for now:

const char* Name() const { return "DBComparator"; }

void FindShortestSeparator(std::string*, const leveldb::Slice&) const { }

void FindShortSuccessor(std::string*) const { }

};

更新日志

修正了格式,使其符合Google C++ Style Guide的要求。

特别导出Windows链接的WriteBatch::Handler内部类。

Merge pull request #665 from cheng-chang:coding.

Merge pull request #669 from pavel-pimenov:fix-readme-windows-mkdir.

Merge pull request #472 from zhoudayang:patch-1.

Merge pull request #339 from richcole-at-amazon:master.

用 CMake 构建恢复 soname 版本。

其他杂项清理、修复和改进。

∨ 展开

同类推荐

相关下载

热门游戏

下载排行

热门关键字

  • 编程软件
  • 编程控件
  • 编译调试
  • 开发环境
  • 网页制作
  • 安装制作
  • 数据库类
  • Java相关
  • 加壳脱壳
  • 控件下载
  • 源码相关
  • 编程其他