寻求基于文件、Shell友好的独立键值存储工具
推荐符合需求的键值存储工具
从你描述的使用场景和特性要求来看,这几个工具完全能满足你的需求:
1. kv 轻量级单文件键值工具
这是专门为Shell环境打造的小工具,完美契合你的所有要求:
- 独立文件存储:每个数据库对应单个文件,删除文件就等于删除整个数据库,完全不需要客户端-服务端架构。
- Shell友好:支持你期望的命令格式,实际使用示例:
kv --db file.db put foo bar kv --db file.db get foo # 注:你示例里的get命令多了一个bar参数,正确用法只需传入键名 - 极速启动:作为单二进制文件,每次命令调用没有任何进程/线程创建或预加载的开销,几乎是瞬间执行。
2. boltdb-cli 基于BoltDB的命令行工具
如果你熟悉Go生态,这个工具基于成熟的嵌入式键值数据库BoltDB:
- 单文件数据库:BoltDB本身就是单文件嵌入式存储,完全符合你“单文件对应单个数据库”的要求。
- Shell命令支持:提供标准的
put/get操作,用法如下:boltdb-cli put -db file.db foo bar boltdb-cli get -db file.db foo - 启动速度快:无服务端设计,每次命令直接操作本地文件,没有额外的启动延迟。
3. leveldb-cli LevelDB的命令行客户端
LevelDB是Google开发的高性能嵌入式键值存储,对应的命令行工具也能满足你的需求:
- 文件级存储:LevelDB的数据以目录形式存储,但你可以把整个目录视为一个数据库单元,删除目录即可清除所有数据(如果严格要求单文件,前两个工具更合适)。
- Shell友好:支持命令行的键值操作:
leveldb_put file.db foo bar leveldb_get file.db foo - 启动迅速:同样是无服务端架构,命令调用直接操作存储文件,没有多余的启动成本。
另外提一句:你示例中的get命令可能有笔误,通常get只需要传入要查询的键名,不需要额外的参数,上面推荐的工具都遵循这个标准用法。
内容的提问来源于stack exchange,提问作者Wu Yongzheng
相关产品推荐
相关产品推荐

