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第三方库


热门话题
JAVAgetRowIndex();和getColumnIndex();在Netbeans的JavaFX中,GridPane类中没有显示为选项。我怎样才能解决这个问题?   java异常:Linux中的“给定的最后一个块未正确填充”,但它在Windows中工作   java在另一个jar中运行外部jar   为什么java不使用指针   java Weblogic健康监控功能   JavaEclipse和JDK7   JavaSpringDataJPA为不同的基选择序列,并将值设置为entity   indexoutofboundsexception Java未按预期获得“StringIndexOutOfBoundsException”   java映射JSON与Map和Normal对象   java这是一个JSP数据库链接问题。如果在jsp中检查输入,则不会更新数据库   在Java中使用参数调用void方法   java为什么代码128不能在JavaFXTextFlow中正确显示?   java如何处理每10秒钟通过ftp接收的50K文件   java为什么“扫描仪从未关闭”警告不会消失?   java如何从这些细节开始   Java Junit在预期和实际情况相同时失败?   java在安卓中有没有一种从sim卡到应用程序的呼叫方式   java错误无法实例化接口组织。springframework。上下文ApplicationContextInitializer   java JUnit测试引发ClassNotFoundException   java使用字符检查2d数组中的某些单词(家庭作业)