grogudb
grogudb 是一个纯 Go 实现的持久化 KV 数据库,专为高频 Put/Has/Del/Range 操作设计,支持线程安全和存储超过物理内存的数据,提供简洁的 API。
• Copy the embed code to showcase this product on your website
• Share on X to spread the word about this amazing tool
<img width="600px" alt="image" src="https://user-images.githubusercontent.com/19553554/230955362-226ec6e5-69c7-4824-88b1-c56bf32ff3e0.png">项目地址:https://github.com/chenjiandongx/grogudb[设计文档](https://github.com/chenjiandongx/grogudb/blob/master/docs/design.md)## 特性* 纯 Go 实现,可内嵌进程序中。* 高效的 Put/Has/Del/Range 操作。* 线程安全。* 允许存储超过物理内存的数据。* 简洁的 API。## 压测Iter: 10k, Bucket: 100 => 1M keydocsStorage: grogudb Op: PutUnique Elapsed: 1.587680726s Ops: 629849.555785/sStorage: leveldb Op: PutUnique Elapsed: 3.207660071s Ops: 311753.732586/sStorage: badger Op: PutUnique Elapsed: 3.713279852s Ops: 269303.699117/sStorage: grogudb Op: PutDuplicate Elapsed: 809.645321ms Ops: 1235108.724849/sStorage: leveldb Op: PutDuplicate Elapsed: 3.344680804s Ops: 298982.192502/sStorage: badger Op: PutDuplicate Elapsed: 3.809289718s Ops: 262516.131360/sStorage: grogudb Op: PutIf Elapsed: 179.746041ms Ops: 5563404.870764/sStorage: leveldb Op: PutIf Elapsed: 512.160806ms Ops: 1952511.766392/sStorage: badger Op: PutIf Elapsed: 1.063730519s Ops: 940087.721597/sStorage: grogudb Op: Has Elapsed: 79.718185ms Ops: 12544189.258699/sStorage: leveldb Op: Has Elapsed: 1.188825549s Ops: 841166.309759/sStorage: badger Op: Has Elapsed: 1.443558895s Ops: 692732.387618/sStorage: grogudb Op: Del Elapsed: 1.25951208s Ops: 793958.244529/sStorage: leveldb Op: Del Elapsed: 3.471029382s Ops: 288098.972940/s`Storage: badger Op: Del Elapsed: 4.524956978s Ops: 220996.576291/sStorage: grogudb Op: Range Elapsed: 81.139301ms Ops: 12.324484/sStorage: leveldb Op: Range Elapsed: 71.821588ms Ops: 13.923390/sStorage: badger Op: Range Elapsed: 295.666737ms Ops: 3.382186/sStorage: grogudb Op: Get Elapsed: 26.561270284s Ops: 37648.801782/sStorage: leveldb Op: Get Elapsed: 1.080395935s Ops: 925586.599879/sStorage: badger Op: Get Elapsed: 1.423728937s Ops: 702380.891483/sIter: 100k, Bucket: 100 => 10M key (Without grogudb)docsStorage: grogudb Op: PutUnique Elapsed: 16.423032579s Ops: 608900.941522/sStorage: leveldb Op: PutUnique Elapsed: 51.516953146s Ops: 194110.858452/sStorage: badger Op: PutUnique Elapsed: 42.421363992s Ops: 235730.279721/sStorage: grogudb Op: PutDuplicate Elapsed: 8.815478924s Ops: 1134368.318070/sStorage: leveldb Op: PutDuplicate Elapsed: 39.615313747s Ops: 252427.636037/sStorage: badger Op: PutDuplicate Elapsed: 47.31107471s Ops: 211367.001517/sStorage: grogudb Op: PutIf Elapsed: 2.299923889s Ops: 4347969.968844/sStorage: leveldb Op: PutIf Elapsed: 5.870490731s Ops: 1703435.105892/sStorage: badger Op: PutIf Elapsed: 15.958825217s Ops: 626612.539709/sStorage: grogudb Op: Has Elapsed: 850.056456ms Ops: 11763924.536325/sStorage: leveldb Op: Has Elapsed: 19.188154981s Ops: 521154.848390/sStorage: badger Op: Has Elapsed: 22.721393642s Ops: 440113.848541/sStorage: grogudb Op: Del Elapsed: 12.924122561s Ops: 773746.918044/sStorage: leveldb Op: Del Elapsed: 44.487984603s Ops: 224779.793673/sStorage: badger Op: Del Elapsed: 44.315291044s Ops: 225655.744652/sStorage: grogudb Op: Range Elapsed: 524.850653ms Ops: 1.905304/sStorage: leveldb Op: Range Elapsed: 1.177148523s Ops: 0.849510/sStorage: badger Op: Range Elapsed: 3.15658723s Ops: 0.316798/s