Skip to content

API リファレンス

普段使いでは DictSQLite、asyncio では AsyncDictSQLite、名前空間を分けたい場合は table() から TableProxy を使います。

DictSQLite

python
from dictsqlite import DictSQLite

db = DictSQLite(
    "data.db",
    storage_mode="pickle",
    persist_mode="lazy",
    table_mode="prefix",
    safe_pickle=True,
)
操作説明
db[key] = value / db.set(key, value)値を保存します。
db[key] / db.get(key, default=None)値を取得します。
del db[key] / db.delete(key)キーを削除します。
db.batch_set(dict)複数キーをまとめて保存します。
db.batch_get(keys)複数キーをまとめて取得します。
db.clear()全データを削除します。
db.flush()lazy buffer をストレージへ反映します。
db.close()flush してリソースを閉じます。

AsyncDictSQLite

python
from dictsqlite import AsyncDictSQLite

db = AsyncDictSQLite("data.db")
await db.set("key", "value")
value = await db.get("key")
await db.close()

非同期版は asyncio ワークロード向けです。バッチ取得ではストレージの一括読み込みを利用し、キャッシュミス時の SQLite 往復を抑えます。

TableProxy

python
users = db.table("users")
users["alice"] = {"role": "admin"}

テーブルは名前空間を分けるための API です。prefix モードではキー接頭辞、separate モードでは SQLite の別テーブルを使います。

主なオプション

オプション
storage_modepickle, jsonb, json, bytes
persist_modememory, lazy, writethrough
table_modeprefix, separate
safe_pickleTrue / False
encryption_passwordstr / None
compression設定により有効化