PickleDB 是什么?PickleDB 本质上是个 纯 Python 实现的键值存储,底层靠 pickle(序列化)+ orjson(高速 JSON)来写磁盘。它的目标很简单:把数据当成普通的 Python 对象(list、dict、str …)直接塞进去,想取就取,像操作本地变量一样自然。别看名字里有 “pickle”,其实它并不只会“腌黄瓜”,更像是 轻量级的本地 NoSQL,随装随用,零依赖,几行代码就能搞定。
pickle
orjson
它解决了哪些痛点?
pip install pickledb
db.set(key, value)
db.get(key)
AsyncPickleDB
aiofiles
安装 & 使用教程
mydb.db
import pickledb# 第一个参数是文件路径,第二个参数表示是否自动保存db = pickledb.load('mydb.db', auto_dump=True)
# 写入db.set('name', '小明')db.set('age', 28)# 读取print(db.get('name')) # → 小明print(db.get('age')) # → 28# 删除db.rem('age')# 列表/字典存储db.set('scores', [85, 90, 78])db.set('profile', {'city': '北京', 'job': '程序员'})
auto_dump=False
db.dump() # 将内存中的数据写入磁盘
from pickledb import AsyncPickleDBasyncdefdemo(): db = await AsyncPickleDB.load('async.db')await db.set('token', 'abc123') token = await db.get('token')print(token)
优缺点一览
性能小实验(来自官方 benchmark)
测试环境:StarLabs StarLite Mk IV(Quad‑Core Intel® Pentium® Silver N5030 @ 1.10 GHz,8 GB RAM),系统为 elementary OS 7.1 Horus。
可以看到,即使是几千万条记录,PickleDB 依旧在 秒级 读取和写入,足以满足大多数小型服务、原型开发、个人工具的需求。
总结 & 小贴士
auto_dump=True
dump()
pickle.UnpicklingError
项目地址:https://github.com/patx/pickledb