键值存储的通用接口
indicium的Python项目详细描述
多个键值存储的pythonic统一api。
此基本包包括:
- 所有存储系统都遵循的Storeapi的抽象定义。
- 使用LRU逐出的存储中的caching of data of values
- 由python字典支持的内存transient storage。
- 使用目录和普通文件的简单filesystem-based storage
- 存储值transparent (de)serialization的适配器。
对附加存储系统的支持由单独分发的软件包提供:
- indicium-git。
- indicium-ldap。
- indicium-leveldb(已计划,尚未提供)
- indicium-memcache(已计划,尚未提供)。
用法
创建一个Store,将内容保存在磁盘上,使用JSON进行序列化, 并存储类似用户帐户的邮件:
fromindicium.baseimportSerializerimportjsonfilestore=Serializer(FSStore("./data",extension=".json"),pickle)filestore.put("/user/jdoe",{"id":"jdoe","name":"John Doe","email":"j@doe.org","password":"supersekrit"})account=filestore.get("/user/jdoe")assertaccount["email"]=="j@doe.org"
./data/user/jdoe.json将包含JSON格式的帐户数据。 下面将向上面的存储添加一个内存缓存,它可以容纳 100个元素,加速数据访问:
fromindicium.cacheimportLRUCachecachedstore=LRUCache(filestore,size=100)account=cachedstore.get("/user/jdoe")assertaccount["email"]=="j@doe.org"
一旦拥有对象集合,就可以运行use查询来检索所有对象 键与某个模式匹配的元素。例如,这将获得 用户帐户的标识符以存储区中的字母j开头 上图:
forkey,accountcachedstore.query("/user/j*"):print(account["id"],account["name"])
安装
所有稳定版本都上载到PyPI,因此 可以使用pip安装和升级它们:
pip install indicium
或者,您可以安装最新的开发代码-风险自负- 直接从git存储库:
pip install git://github.com/aperezdc/indicium