跳转到主要内容

使用元组索引leveldb

项目描述

Jigfyp是一个leveldb查询构建器。它允许您使用字符串元组指定leveldb范围。

初始化

使用LevelDB对象初始化Jigfyp。

import leveldb, Jigfyp

db = leveldb.LevelDB()
j = jigfyp.Jigfyp(db)

处理单个键

以下示例中的键是 b'one!two!three'

j.put_one((b'one', b'two', b'three'), b'Hi')
j.get_one((b'one', b'two', b'three'))
j.delete_one((b'one', b'two', b'three'))

处理键范围

以下是如何添加几条记录的一种方法。

j.put_one((b'one', b'two', b'three'), b'Hi')
j.put_one((b'one', b'two', b'four'), b'Hi')
j.put_one((b'one', b'two', b'seven), b'Hi')
j.put_one((b'over', b'nine', b'thousand'), b'Hi')

如果您正在写入多条记录,可以使用 put_many 方法来保存相同的数据,但使用 leveldb.WriteBatch,这通常更快。

records = [
    ((b'one', b'two', b'three'), b'Hi'),
    ((b'one', b'two', b'four'), b'Hi'),
    ((b'one', b'two', b'seven), b'Hi'),
    ((b'over', b'nine', b'thousand'), b'Hi'),
]
j.put_many(records)

酷的地方在于 get_manydelete_many 方法。使用这些方法,您指定部分键,并发出以该键开始的全部内容。考虑一个包含上述四个记录的数据库。如果我们不对 get_many 传递任何参数,我们将读取所有数据。

j.get_many()

如果我们传递 (b'one', b'two')

j.get_many(b'one', b'two')

我们将得到以下键的三个记录

* ``(b'one', b'two', b'three')``
* ``(b'one', b'two', b'four')``

而不是以下键的记录

  • (b'one', b'two', b'seven')

  • (b'over', b'nine', b'thousand')

同样,如果我们运行以下命令,

j.delete_many(b'one')

我们将删除所有以 b'one' 开头的记录,留下数据库中的单个记录,键为 (b'over', b'nine', b'thousand')

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

jigfyp-0.0.1.tar.gz (2.2 kB 查看散列)

上传于 源码

由以下提供支持