「數據庫」純go寫的數據庫-NutsDB

NutsDB是純Go語言編寫一個簡單、高性能、內嵌型、持久化的key-value數據庫。

NutsDB支持事務,從v0.2.0之後的版本開始支持ACID的特性,建議使用最新的版本。v0.2.0之前的版本,保持高性能,沒有作sync,但是具備高性能的寫(本地測試,百萬數據寫入達40~50W+/s)。所有的操作都在事務中執行。NutsDB從v0.2.0版本開始支持多種數據結構,如列表(list)、集合(set)、有序集合(sorted set)。從0.4.0版本開始增加自定義配置讀寫方式、啟動時候的文件載入方式、sync是否開啟等。

與其他數據庫的比較

BoltDB

BoltDB和NutsDB很相似都是內嵌型的key-value數據庫,同時支持事務。Bolt基於B+tree引擎模型,只有一個文件,NutsDB基於bitcask引擎模型,會生成多個文件。當然他們都支持範圍掃描和前綴掃描這兩個實用的特性。

LevelDB, RocksDB

LevelDB 和 RocksDB 都是基於LSM tree模型。不支持bucket。 其中RocksDB目前還沒看到golang實現的版本。

Badger

Badger也是基於LSM tree模型。但是寫性能沒有我想象中高。不支持bucket。

另外,以上數據庫均不支持多種數據結構如list、set、sorted set,而NutsDB從0.2.0版本開始支持這些數據結構。

github地址: https://github.com/xujiajun/nutsdb

github星數:905

推薦指數:★ ★ ★


分享到:


相關文章: