【问题标题】:Python Table engine binding for Tokyo Cabinet东京内阁的 Python 表引擎绑定
【发布时间】:2010-10-10 18:05:19
【问题描述】:

我正在寻找东京内阁表引擎的 python 绑定。我尝试了Pytc,但只能找到 Hash 和 B-tree 引擎支持。还有其他可用的绑定吗?

【问题讨论】:

    标签: python tokyo-cabinet


    【解决方案1】:

    一年多来,我一直在监视(有时还改进)各种 Python 绑定,因此这里有一个符合您的标准的最佳绑定的更新列表。

    有许多陈旧和/或不完整的替代方案。

    【讨论】:

    【解决方案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

    【讨论】:

      【解决方案3】:

      下面是使用 PyTyrant 实现的查表引擎:

      http://github.com/ericflo/pytyrant/tree/master

      【讨论】:

      • 由于我在这里的低分,我无法提交链接。将 hxxp 与 http 交换以使其工作。
      【解决方案4】:

      我联系了 tc 的作者,他告诉我以下内容:

      目前,表 (tdb) 驱动程序 存在于master branch (unit tests) 和fdb driver 是 正在一个单独的分支中开发。

      我尝试了桌子驱动程序进行了一次小型测试,并成功,我计划很快在更大的桌子上尝试它。

      【讨论】:

        【解决方案5】:

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

        tc

        如果这不起作用,您可能不走运。我认为所有的暴君绑定都只使用哈希引擎。

        【讨论】:

        • 我查看了 tc,他们也不支持 Table。我认为只有 Perl 和 Ruby 绑定完全支持所有绑定。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多