开源:LMDB 操作工具:lmcmd

本文涉及的产品
函数计算FC,每月15万CU 3个月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 本文介绍了 LMDB(一种高效的键值存储数据库)和基于 Python 开发的命令行工具 `lmcmd`。由于 LMDB 使用二进制文件存储,管理和调试不便,因此开发了 `lmcmd`,提供了类似 Redis 的命令行操作界面,支持数据库操作、数据导入导出和查找等功能。文章涵盖了 `lmcmd` 的安装、连接数据库和常用命令(如 `set`、`get`、`export` 等)示例。最后强调了开源工具的价值,鼓励用户反馈和改进。


目录

  1. 什么是 LMDB
  2. 为什么编写 lmcmd
  3. 安装方法
  4. 如何使用
  1. 小结

1. 什么是 LMDB

       LMDB(Lightning Memory-Mapped Database)是一种高效的键值存储数据库,基于内存映射(memory-mapping)技术,提供快速的读写操作,特别适用于高性能和高并发访问的小型数据库应用。LMDB 具有以下特点:

  • 高效性:内存映射文件方式提高了数据存取效率。
  • 事务性强:支持多版本并发控制(MVCC),保证数据一致性。
  • 轻量级:数据库文件为单个文件,存储高效,适合嵌入式系统或大规模数据存储。
  • ACID 特性:提供原子性、一致性、隔离性和持久性保障,确保数据的可靠性。

LMDB 在机器学习、数据存储等场景中应用广泛,尤其适合需要快速存取的数据集和模型。


2. 为什么编写 lmcmd

       在使用 LMDB 的过程中,我发现其存储文件为二进制格式,这使得数据库的管理和调试变得不那么方便。同时,我没有找到一个现成的管理工具来便捷地操作 LMDB 数据库(或许是有的,但没有找到)。这让我想到 Redis 提供的 redis-cli 工具,它通过命令行界面支持高效的数据库操作,极大地方便了调试和数据管理。

       因此,我决定模仿 redis-cli 的命令行风格,使用 Python 开发一个 LMDB 的命令行客户端工具——lmcmd。它是一个基于 Python 的交互式控制台,支持对 LMDB 数据库进行基本的键值操作,数据导入导出,查找等功能。


3. 安装方法

       为了方便使用,我已经将 lmcmd 发布到 PyPI 网站(项目地址),您可以通过 pippip3 进行安装:

pip install lmcmd

image.gif

或者:

pip3 install lmcmd

image.gif


4. 如何使用

连接数据库

   lmcmd 通过指定数据库文件夹路径来连接 LMDB 数据库。如果该数据库文件夹不存在,lmcmd 会自动创建一个新的数据库。

  • 在命令行输入以下命令连接到指定数据库
lmcmd my_database

image.gif

  • 或者通过指定完整路径来连接
lmcmd /path/to/my_database

image.gif

image.gif 编辑

连接成功后,进入上述界面,您将进入命令行模式,开始执行数据库操作。

命令列表

以下是 lmcmd 提供的基本命令:

  • show:显示当前数据库名称。
  • set <KEY> <VALUE>:存储键值数据。
  • get <KEY>:检索指定键的值。
  • del <KEY>:删除指定的键。
  • list:列出数据库中的所有键值对。
  • export:将数据库数据导出为 export.json 文件。
  • import <ID> <FILE_PATH>:从 JSON 文件导入数据。
  • search <VALUE>:在数据库中查找包含指定值的键。

示例操作

lmcmd 命令行下执行以下操作:

>>> set name Alice
Ok
>>> get name
Alice
>>> list
{name: Alice}
>>> export
Data Exported to export.json
>>> import id data.json
Data Imported!
>>> show
Database: my_database
>>> del name
Ok
>>> list
(Empty)
>>> search Alice
{name: Alice}

image.gif

这些命令与 redis-cli 的操作方式非常相似,因此用户可以快速上手。


5. 小结

       在开源的道路上,有许多小而功能强大的工具值得我们去开发。lmcmd 这个工具虽然简单,但它为需要使用 LMDB 的开发者提供了极大的便利。无论是在调试、管理还是操作数据时,它都能提供更高效、更便捷的体验。

       如果在使用过程中您发现了任何问题或有改进建议,欢迎随时在评论区告知我。

       开源路上,砥砺前行。

源码地址:lmcmd

区块链内容感兴趣可以查看我的专栏:小试牛刀-区块链.

感谢您的关注和收藏!

image.gif 编辑

目录
相关文章
|
4月前
|
监控 Linux 网络安全
Linux命令大全:从入门到精通
日常使用的linux命令整理
770 13
|
JSON 搜索推荐 网络协议
玩转curl指令—测试简单的HTTP接口
玩转curl指令—测试简单的HTTP接口
879 0
|
6月前
|
存储 算法
飞桨x昇腾生态适配方案:09_Paddle转ONNX
本节主要介绍如何将 PP-OCRv4 模型转化为 ONNX 模型,包括环境准备、模型下载、训练模型转 inference 模型及最终转为 ONNX 格式的过程。首先需安装 Paddle2ONNX 和 ONNXRuntime,接着下载并解压训练模型。通过 `export_model.py` 脚本将训练模型转化为 inference 模型,生成包含结构和参数的文件。最后使用 Paddle2ONNX 工具完成到 ONNX 格式的转换,并可选地使用 onnxslim 进行模型优化。各步骤均提供详细命令与参数说明,便于实际操作与部署。
272 9
|
5月前
|
JSON 监控 API
深度剖析:淘宝商品详情API返回值结构及高效使用方法
本文详解了淘宝商品详情API(taobao.item.get)的使用方法与返回值解析,涵盖接口基础认知、返回值结构及核心字段说明。通过四步调用流程(注册-认证-请求-解析),开发者可高效获取商品信息,包括基础数据、库存销量、SKU详情、促销活动等。文章还提供了Python实战代码示例,助您实现商品展示、价格监控、智能选品等场景应用。最后提醒注意权限认证、调用频率限制及错误处理,助力电商业务创新。
|
11月前
|
并行计算 算法 安全
面试必问的多线程优化技巧与实战
多线程编程是现代软件开发中不可或缺的一部分,特别是在处理高并发场景和优化程序性能时。作为Java开发者,掌握多线程优化技巧不仅能够提升程序的执行效率,还能在面试中脱颖而出。本文将从多线程基础、线程与进程的区别、多线程的优势出发,深入探讨如何避免死锁与竞态条件、线程间的通信机制、线程池的使用优势、线程优化算法与数据结构的选择,以及硬件加速技术。通过多个Java示例,我们将揭示这些技术的底层原理与实现方法。
628 3
|
11月前
|
API C语言 开发者
AscendC从入门到精通系列(五)调用基于工程开发AscendC算子
单算子API调用方式是通过C语言API直接调用已编译的自定义算子。首先,需基于AscendC算子工程完成算子的定义与实现,并通过编译脚本部署。编译后,生成的头文件和动态库支持在应用程序中直接调用算子,包括初始化AscendCL、申请资源、数据传输、计算workspace、执行算子、同步等待及资源释放等步骤。编译算子调用程序时,需正确配置CMakeLists.txt,确保头文件和动态库的路径正确。
|
PyTorch API 算法框架/工具
NumPy 1.26 中文官方指南(三)(3)
NumPy 1.26 中文官方指南(三)
256 1
|
算法 Linux 编译器
⭐⭐⭐⭐⭐Linux C++性能优化秘籍:从编译器到代码,探究高性能C++程序的实现之道
⭐⭐⭐⭐⭐Linux C++性能优化秘籍:从编译器到代码,探究高性能C++程序的实现之道
733 3
|
存储 安全 算法
Secureboot概念
Secureboot概念
468 0

热门文章

最新文章