Python表引擎绑定东京柜子技术

12

我正在寻找Tokyo Cabinet 的表引擎的Python绑定。我尝试了 Pytc,但只能找到Hash和B-tree引擎的支持。是否有其他可用的绑定?

5个回答

7

1
由于我的积分较低,我无法提交链接。将"hxxp"替换为"http"以使其正常工作。 - uggedal

4

我与tc的作者联系过,他告诉我:

目前,表格(tdb)驱动程序存在于主分支单元测试)中,fdb驱动程序正在单独的分支中开发。

我尝试了一下这个表格驱动程序进行小规模测试,并且成功了。我计划很快在更大的表格上试用它。


2

我的 pytc 分支名为 "tc",支持表格(TDB)http://github.com/rsms/tc

基本示例:

>>> import tc
>>> db = tc.TDB("slab.tdb", tc.TDBOWRITER | tc.TDBOCREAT)
>>> db.put('some key', {'name': 'John Doe', 'age': '45', 'city': u'Internets'})
>>> rec = db.get('some key')
>>> print rec['name']
John Doe

执行查询:

>>> import tc
>>> db = tc.TDB("slab.tdb", tc.TDBOWRITER | tc.TDBOCREAT)
>>> db.put('torgny',  {'name': 'Torgny Korv', 'age': '31', 'colors': 'red,blue,green'})
>>> db.put('rosa',    {'name': 'Rosa Flying', 'age': '29', 'colors': 'pink,blue,green'})
>>> db.put('jdoe',    {'name': 'John Doe',    'age': '45', 'colors': 'red,green,orange'})
>>> q = db.query()
>>> q.keys()
['torgny', 'rosa', 'jdoe']
>>> q.filter('age', tc.TDBQCNUMGE, '30')
>>> q.keys()
['torgny', 'jdoe']
>>> q.filter('colors', tc.TDBQCSTROR, 'blue')
>>> q.keys()
['torgny']
>>> # new query:
>>> q = db.query()
>>> q.order('name') # Ascending order by default
>>> q.keys()
['jdoe', 'rosa', 'torgny']
>>> q.order(type=tc.TDBQONUMASC, column='age')
>>> q.keys()
['jdoe', 'torgny', 'rosa']

在TDB单元测试中有更多的示例:http://github.com/rsms/tc/blob/master/lib/tc/test/tdb.py


2

我已经监控(有时还改善)了一年多的TC的各种Python绑定,因此这里是更新后的最佳绑定列表,符合您的标准。

  • 对于Tokyo Cabinet,包括Tyrant:tokyo-python
  • 对于Tokyo Tyrant(纯Python):pyrant

有许多过时和/或不完整的替代方案。


顺便说一下,所有最近的工作都是在我的 Pyrant 分支中完成的:http://bitbucket.org/neithere/pyrant - Andy Mikhaylenko

1

我所知道的另一个是 pytc 的分支,但看起来他们只做了一些重构和文档工作,所以可能仍然只支持哈希和B树:

tc

如果这不起作用,你可能就没办法了。我认为所有的 Tyrant 绑定都只使用哈希引擎。


我查看了tc,发现它们也不支持Table。我认为只有Perl和Ruby绑定具有对所有绑定的完全支持。 - Bharani

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接