python中的跨平台(fast)dbm接口

semidbm的Python项目详细描述


概述

https://secure.travis-ci.org/jamesls/semidbm.png?branch=masterhttps://coveralls.io/repos/jamesls/semidbm/badge.png?branch=masterLatest VersionSupported Python versionsSupported Python implementationsLicenseWheel Status

semidbm是dbm的一个快速、纯python实现,它是 持久密钥值存储。它允许你通过 dict接口:

import semidbm
db = semidbm.open('testdb', 'c')
db['foo'] = 'bar'
print db['foo']
db.close()

这些值将被持久化到磁盘,您可以稍后检索 这些键/值对:

# Then at a later time:
db = semidbm.open('testdb', 'r')
# prints "bar"
print db['foo']

写这篇文章时,要牢记以下几点:

  • 纯python,支持python 2.6、2.7、3.3和3.4。
  • 跨平台,适用于Windows、Linux、Mac OS X。
  • 支持cpython、pypy和jython(2.7-b3及更高版本)。
  • 简单快捷(见Benchmarking Semidbm)。

支持的python版本

semidbm支持python 2.6、2.7、3.3和3.4。

正式文件

阅读semidbm docs了解更多信息 以及如何使用semidbm。

功能

semidbm最初是作为对 dumbdbm python标准库中的库。下面是一些 对dumbdbm的改进。

单个数据文件

与索引文件和数据文件不同,索引和数据 合并成一个文件。这个数据文件总是附加到, 写入文件的数据永远不会被修改。

数据文件压缩

semidbm使用只追加的文件格式。这有可能发展到 大尺寸的空间永远不会被回收。semidbm通过添加 compact()方法,将数据文件重写为最小大小。

性能

semidbm明显快于dumbdbm(记住两者都是纯python 图书馆)。文档显示 results 以及如何运行基准测试 你自己写剧本。

限制

  • 不是线程安全的;不能被多个进程访问。
  • 整个索引必须放在内存中。这基本上意味着 钥匙必须放在内存中。

github issues上发布反馈和问题,或查看 githubrepo上的最新更改。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
jcombobox如何在java中的另一个选项卡中执行按钮操作时更新ComboBox   javascript AJAX正在使用POST映射将所有空数据发送到Spring控制器?   java使用WebPush Api部署了两次类似的战争,导致InvalidKeySpecException:无法识别密钥规范   如果值相同,则停止while循环   为什么完整数组在部分初始化时不在Java中打印?   java我可以使用@OneToMany(mappedBy=“…”)吗在@MappedSuperclass中?   在Oracle jdbc驱动程序中注册用于透明应用程序故障切换的java回调   用Java程序分发用JavaDB制作的数据库   java如何使用运算符转换字符串   Android,Java只从字符串数组中获取最后一个单词   java Bluetooth回调函数onCharacteristicRead未对另一个使用<API21的活动进行意向调用。不是在棉花糖里   java如何使用Gradle设置环境变量,而不是在Exec范围内?   JavaRSA密钥块包装器:javax。加密。BadPaddingException:解密错误   java监控弹性搜索可能的响应   java使jpa-oneToMany关系有效?   Spring应用程序中JSP中HashMap的java迭代HashMap   在或多个运营商SAP Java中   java用jsp格式发送句子(字符串)