本文转自饿了么的高级架构师陈东明(cadem)发布于云栖社区的文章:
KV存储的对比
。作者还整理了另外一篇文章:
存储系统的分类
,列举了常见的一些kv存储模型和实现。
最近对各种KV存储进行一个比较,从存储引擎到存储引擎的类型,到单机版的kvstore,再到分布式kvstore集群。
存储引擎的类型
Welcome to Oschina Tools website
类型
|
名称
|
语言
|
备注
|
应用在___
|
dbengine排名
|
出品
|
berkeleyDB
|
BTREE, HASH, QUEUE, RECNO
|
C,Java
|
|
|
No.9
|
oracle
|
Wiredtiger
|
btree, LSM
|
C
|
|
mongodb
|
No.24
|
WiredTiger/mongodb
|
Tokyo Cabinet /Kyoto Cabinet
|
b+tree,hash table
|
|
|
nmdb,Kyoto Tycoon
|
NO.27/No.36
|
FAL Labs
|
LMDB
|
btree
|
C
|
|
OpenLDAP
|
|
symas
|
BoltDB
|
btree
|
Go
|
LMDB的go版本
|
|
|
|
leveldb
|
LSM
|
c++
|
|
|
No.15
|
google
|
goleveldb
|
LSM
|
Go
|
leveldb的go版本
|
|
|
个人
|
levigo
|
LSM
|
Go
|
Go wrapper for LevelDB
|
|
|
个人
|
rocksdb
|
LSM
|
c++,java
|
|
|
No.18
|
facebook
|
gorocksdb
|
LSM
|
Go
|
Go wrapper for RocksDB
|
|
|
个人
|
mongo-rocks
|
LSM
|
C++
|
|
RocksDB Storage Engine Module for MongoDB
|
|
mongo partner
|
bitcast
|
LSH
|
C
|
|
beansdb,riak
|
|
basho
|
PerconaFT
|
FractalTree
|
C++
|
Mysql存储引擎之TokuDB
|
percona
|
|
|
单机kvstore
类型
|
名称
|
采用的存储引擎
|
语言
|
出品
|
主从复制
|
github star
|
kv对
|
nmdb
|
qdbm, berkeley db, tokyo cabinet,tdb
|
C
|
个人Alberto Bertogli
|
|
|
kv对
|
memcachedb
|
Berkeley DB
|
C
|
新浪
|
yes
|
|
kv对
|
Kyoto Tycoon
|
Kyoto Cabinet
|
C/C++
|
FAL Labs
|
|
|
结构化kv(redis兼容)
|
ssdb
|
leveddb
|
C/C++
|
个人ideawu
|
yes
|
4k+
|
结构化kv(redis兼容)
|
ssdb-rocks
|
rocksdb
|
C/C++
|
个人ideawu
|
|
92
|
结构化kv(redis兼容)
|
ardb
|
LevelDB, RocksDB, LMDB, WiredTiger
|
C++
|
个人yinqiwen
|
yes
|
800+
|
结构化kv(redis兼容)
|
(reborndb)qdb
|
Rocksdb and LevelDB
|
Go
|
个人ngaut
|
|
200+
|
结构化kv(redis兼容)
|
Pika
|
Rocksdb
|
C
|
Qihoo360
|
yes
|
900+
|
结构化kv(redis兼容)
|
LedisDB
|
LevelDB, goleveldb, LMDB, RocksDB, BoltDB or Memory
|
Go
|
个人SiddonTang
|
|
2K+
|
单机kvstore的分布式代理
名称
|
语言
|
存储
|
出品
|
应用/githubstar
|
分片
|
弹性
|
备注
|
Reborndb
|
Go
|
qdb
|
个人ngaut
|
200+
|
yes
|
yes
|
|
Netflix Dynomite
|
C
|
redis,memcached
|
Netflix
|
1.9K+
|
|
|
Dynamo
|
Codis
|
Go
|
codis-server(定制redis)
|
社区CodisLabs
|
5K+
|
|
|
|
Twenproxy
|
C
|
redis,memcached
|
twitter
|
6K+
|
|
|
|
分布式KVstore
类型
|
名称
|
语言
|
出品
|
dbengine排名/githubstar
|
存储引擎
|
社区活跃
|
特性
|
备注
|
kv型
|
riak
|
erlang
|
basho
|
No.3/2K+
|
bitcask
|
|
|
Dynamo
|
kv型
|
beansdb
|
C
|
douban
|
600+
|
bitcask模型
|
近2年没有更新,没有文档
|
|
Dynamo
|
kv型
|
project Voldmort
|
Java
|
LinkedIn
|
No.29/1.8K+
|
BDB-JE,MySQL,Read-Only
|
|
|
|
kv型
|
Scalris
|
erlang
|
Zuse Institute Berlin
|
No.35/88
|
|
|
|
|
kv型
|
aeospike
|
|
aespike
|
No.7
|
|
|
|
|
kv型
|
Tair
|
C/C++
|
alibaba
|
400+
|
自研的fdb
|
停止更新,没有文档
|
|
|
原文中没有提到的,在这里添加上作为补充。
tidb
: 国产的分布式NewSQL产品,底层采用tikv, 支持MySQL协议, PingCap出品。
badger
: 性能优异,特别为SSD优化,仅仅key存储在LSM tree中。