精通LevelDB
上QQ阅读APP看书,第一时间看更新

1.3 LevelDB的特性

LevelDB是一个C++语言编写的高效键-值嵌入式数据库,目前对亿级的数据也有着非常好的读写性能。虽然LevelDB有着许多键-值数据库所不具备的优秀特性,但是与Redis等一些主流键-值数据库相比也有缺陷。本节将对LevelDB的优缺点进行具体阐述。

LevelDB的优点体现在:

  • key与value采用字符串形式,且长度没有限制;
  • 数据能持久化存储,同时也能将数据缓存到内存,实现快速读取;
  • 基于key按序存放数据,并且key的排序比较函数可以根据用户需求进行定制;
  • 支持简易的操作接口API,如Put、Get、Delete,并支持批量写入;
  • 可以针对数据创建数据内存快照;
  • 支持前向、后向的迭代器;
  • 采用Google的Snappy压缩算法对数据进行压缩,以减少存储空间;
  • 基本不依赖其他第三方模块,可非常容易地移植到Windows、Linux、UNIX、Android、iOS。

LevelDB的缺点体现在:

  • 不是传统的关系数据库,不支持SQL查询与索引;
  • 只支持单进程,不支持多进程;
  • 不支持多种数据类型;
  • 不支持客户端-服务器的访问模式。用户在应用时,需要自己进行网络服务的封装。

读者可以综合LevelDB的优缺点,有针对性地评估其是否适用于实际开发的项目/产品,并对最终是否使用进行决定。