cpy-leveldb

Python版的LevelDB
授权协议 LGPL
开发语言 C/C++ Python
所属分类 数据库相关、 NoSQL数据库
软件类型 开源软件
地区 国产
投 递 者 凤财
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

cpy-leveldb是在leveldb(google开源的高性能key-value数据库)的 C API 基础上开发的 python 绑定,目前支持leveldb 的 Put, Get, Delete, Write操作,以及 WriteBatch 的原子更新操作,WriteBatch 还可以通过将多个更新放到同一个 batch 里,在存在大量更新操作时,加速它们的执行,此外,cpy-leveldb 还支持快照(Snapshot),迭代器(Iterator),使 LevelDB 的功能最大化的在 Python 中得到实现。

cpy-python使用例子:

>>> import leveldb
>>> db = leveldb.LevelDB("/tmp/leveldb")
>>> db.Put("1", "111")
>>> db.Put("2", "222")
>>> db.Put("3", "333")
>>> db.Get("1")
'111'
>>> db.Get("3")
'333'
>>> db.Get("2")
'222'
>>> batch = leveldb.WriteBatch()
>>> for i in xrange(20):
...     batch.Put(str(i), "hello world %i" % i)
... 
>>> db.Get("2")
'222'
>>> db.Get("5")
''
>>> db.Write(batch)
>>> db.Get("5")
'hello world 5'
>>> db.Get("2")
'hello world 2'
>>> iter = leveldb.Iterator(db)
Iterator_init executed.
>>> iter.First()
>>> iter.Key()
'0'
>>> iter.Value()
'hello world 0'
>>> iter.Last()
>>> iter.Key()
'9'
>>> iter.Value()
'hello world 9'
>>> iter.First()
>>> iter.Next()
>>> iter.Key()
'1'
>>> iter.Next()
>>> iter.Key()
'10'
>>> iter.Next()
>>> iter.Key()
'11'
>>> iter.Value()
'hello world 11'

联系作者:haipingf@gmail.com(http://my.oschina.net/forhappy2010)

 相关资料
  • cpy

    Cpy 是一种跨平台的通用脚本语言,具有类似 C 的语法。它易于学习,功能强大,具有许多模块:字符串、正则表达式、套接字、http、多线程、多进程等等。 Cpy 提供了一种使用 C 语法编写 Python 代码的方法。它的语法与 C 编程语言,以及其他任何类似语言都很相似,例如 PHP、Java、JavaScript。同时,它的解释器基于 Python 解释器,因此它继承了 Python 的所有功能。 

  • pymsf模块是Spiderlabs实现的一个python与Metasploit的msgrpc通信的python模块,但首先你需要先启动msgrpc服务,命令如下: load msgrpc Pass=<password> 与msgrpc进行通信其实就是与msfconsole进行通信,首先你需要创建一个msfrpc的类,登录到msgrpc服务器并且创建一个虚拟的终端,然后你就可以在你创建的虚拟终端

  • 虽然我有一个更新的android studio,我得到以下错误,但我不能找到Gradle4.1在gradle文件夹,但当我检查文件->项目结构->gradle插件是4。 我的建筑档案是这个。我设置为23,因为我需要在5.0.1手机上运行它。

  • 问题内容: 我知道它的菜鸟问题,我真的在询问之前四处搜寻。但是我想知道的事情并没有确切的答案。我们如何不使用目标C将字符串拆分为数组?例如: 我知道它不起作用,但是我正在寻找那样的东西。我想用“”分割字符串(或其他字符/字符串) 想法:对我来说可能很好,扩展了字符串类。但是我不知道我该怎么做。 编辑:忘记导入基础。如果我导入基础,它将起作用。但是与扩展String类有什么关系吗?谢谢 问题答案:

  • 1.3.Android的版本 同任何软件一样,Android也在不断的改进之中,其间的变化就在版本号上得以呈现。但是容易使人迷惑的是,不同版本号之间又是什么关系?在表格里看会更直观些,如下: 表格 1.1. 截至Android 3.0的Android各版本 Android 版本号 API Level 代号 Android 1.0 1 Android 1.1 2 Android 1.5 3 Cupc

  • 问题内容: 我想计算对象使用的内存。很大,但是很浅(例如,在列表上调用,它不包括列表元素占用的内存)。 我想写一个通用的“深度”版本。我了解“深层”的定义有些含糊;我对后跟的定义感到非常满意。 这是我的第一次尝试: 它存在两个已知问题,并且存在许多未知问题: 我不知道如何以捕获所有链接对象的方式遍历通用容器。因此,我使用进行了迭代,并对字典的大小写进行了硬编码(包括值,而不仅仅是键)。显然,这不适