LevelDB
2018-10-17 10:19
72 查看
LevelDb有如下一些特点:
首先,LevelDb是一个持久化存储的KV系统,和Redis这种内存型的KV系统不同,LevelDb不会像Redis一样狂吃内存,而是将大部分数据存储到磁盘上。
其次,LevleDb在存储数据时,是根据记录的key值有序存储的,就是说相邻的key值在存储文件中是依次顺序存储的,而应用可以自定义key大小比较函数,LevleDb会按照用户定义的比较函数依序存储这些记录。
再次,像大多数KV系统一样,LevelDb的操作接口很简单,基本操作包括写记录,读记录以及删除记录。也支持针对多条操作的原子批量操作。
另外,LevelDb支持数据快照(snapshot)功能,使得读取操作不受写操作影响,可以在读操作过程中始终看到一致的数据。
除此外,LevelDb还支持数据压缩等操作,这对于减小存储空间以及增快IO效率都有直接的帮助。
LevelDb性能非常突出,官方网站报道其随机写性能达到40万条记录每秒,而随机读性能达到6万条记录每秒。总体来说,LevelDb的写操作要大大快于读操作,而顺序读写操作则大大快于随机读写操作。至于为何是这样,看了我们后续推出的LevelDb日知录,估计您会了解其内在原因。
相关文章推荐
- LevelDB内部实现
- LevelDB介绍
- LevelDB原理探究与代码分析
- Leveldb 实现原理
- leveldb研究5- Snapshot, Level和Compaction
- ZZ:LevelDB原理详解
- 给C# .NET 的兄弟们做点小贡献 - NoSql LevelDB .net 移植版 普通PC 100万条数据插入不超过4秒
- 关于leveldb
- linux 安装 py-leveldb
- LevelDB系列之SSTable(Sorted Strings Table)文件
- WriteBatch-levelDB源码解析
- LevelDb日知录(Leveldb 实现原理)
- leveldb研究系列四——memtable组件
- LevelDB、TreeDB、SQLite3 性能对比
- leveldb源码分析--Comparator
- Tair存储引擎之一Leveldb中数据的存储思想
- LevelDB中的Skip List(跳跃表)
- LevelDB源码剖析之SSTable_sstable文件的读取
- [Leveldb源码剖析疑问]-block_builder.cc之Add函数
- LevelDB原理探究与代码分析