有没有基于文件的shell友好键值存储?

时间:2018-03-29 03:55:11

标签: database shell key-value-store

我正在寻找一个像这样运行的键值存储:

$ tool --db file.db put foo bar
$ tool --db file.db get foo
bar

我想要以下属性:

  • 独立和基于文件:我不想要服务器客户端。一个文件一个数据库。删除文件,删除数据库。
  • Shell友好:我主要在shell中使用它,因此每个命令调用只有一个查询。引导程序需要很快。从这个意义上说,大多数现有的DBMS都很慢。通过bootstrap,我的意思是创建工作进程/线程,预加载元数据,维护最新查询结果的内存中副本。如果我们只有一个查询要运行,则不需要所有这些。
  • 最好用C / C ++实现,因为Java和Python之类的托管语言本身就很慢。

SQLite是一个独立的工具,但我不需要关系数据库。

LevelDB看起来像一个很好的基于文件的数据库,但它的自举时间很长。它将新添加的条目保留在内存中的日志中,并批量刷新到主DB文件。如果命令只添加一个条目,则性能将非常差。

kv-bash非常友好,并且快速启动,但它会创建大量小文件(每个条目一个文件)。

0 个答案:

没有答案