简介
PickleDB 是一款纯 Python 编写的轻量级键值数据库,无需安装额外服务器或依赖。该库以 JSON 格式存储小规模数据,是快速原型开发、CLI 工具、配置文件管理及微型项目的理想选择。
PickleDB 的核心优势在于使用简单,同时具备足够的功能来应对多种数据存储场景。它支持字符串、数字、列表、字典和布尔值等多种数据类型。
什么是 PickleDB 及其应用场景
PickleDB 是一种 NoSQL 数据库,以键值对形式将数据存储在 JSON 文件中。它专为那些使用 PostgreSQL 或 MySQL 等完整数据库系统显得过于臃肿的场景而设计。
PickleDB 的主要应用场景包括:
- 存储用户设置和配置信息
- 缓存中间计算结果
- 保存授权令牌和 API 密钥
- 记录简单日志和计数器
- 创建具有数据持久性的快速原型
- 开发本地存储的 CLI 应用程序
安装与初始配置
使用 Python 标准包管理器即可安装 PickleDB:
pip install pickledb
安装后无需额外配置即可直接使用:
import pickledb
# 创建或连接数据库
db = pickledb.load('database.db', auto_dump=True)
参数 auto_dump=True 可确保所有更改自动保存到文件,即使在程序意外终止时也能保证数据安全。
架构与工作原理
数据存储结构
PickleDB 使用 JSON 作为存储格式,确保数据可读且跨平台可移植。数据库文件是一个普通的 JSON 文档,结构如下:
{
"simple_key": "字符串值",
"numeric_key": 42,
"boolean_key": true,
"list_key": ["元素1", "元素2", "元素3"],
"dict_key": {
"nested_field": "嵌套值",
"nested_number": 100
}
}
保存机制
使用 PickleDB 时,所有数据在数据库初始化时加载到内存中。更改会应用于内存中的对象,然后根据设置保存到文件:
- 当
auto_dump=True时,每次写入操作后自动保存 - 当
auto_dump=False时,需要手动调用dump()方法
PickleDB 方法完整参考
核心数据操作方法
| 方法 | 描述 | 使用示例 |
|---|---|---|
set(key, value) |
按键保存值 | db.set('name', '小明') |
get(key) |
按键获取值 | name = db.get('name') |
exists(key) |
检查键是否存在 | if db.exists('name'): |
rem(key) |
删除键及其值 | db.rem('name') |
getall() |
返回所有键 | keys = db.getall() |
totalkeys() |
返回键的总数 | count = db.totalkeys |