Skip to content

ego008/python-kyototycoon-binary

Repository files navigation

python-kyototycoon-binary

image

image

A lightweight Python client for accessing Kyoto Tycoon via its binary protocol.

The specification of the binary protocol is explained here.

Installation

$ pip install Cython
$ pip install python-kyototycoon-binary

Basic Usage

>>> from bkyototycoon import KyotoTycoonConnection
>>> client = KyotoTycoonConnection()
>>> client.set_bulk({'key1': 'value1', 'key2': 'value2'})
2
>>> client.get_bulk(['key1', 'key2', 'key3'])
{'key2': 'value2', 'key1': 'value1'}
>>> client.remove_bulk(['key1', 'key2'])
1
>>> client.get_bulk(['key1', 'key2', 'key3'])
{'key1': 'value1'}

Performance

In our benchmark tests, python-kyototycoon-binary was about 6-8 faster than python-kyototycoon.

$ pip install python-kyototycoon
$ ktserver -dmn
$ python benchmarks/benchmark.py
python-kyototycoon-binary get_bulk qps: 30961
python-kyototycoon-binary set_bulk qps: 40320
python-kyototycoon-binary get_bulk_with_pool qps: 31722
python-kyototycoon-binary set_bulk_with_pool qps: 42961
python-kyototycoon get_bulk qps: 4394
python-kyototycoon set_bulk qps: 4534

Documentation

Documentation is available at http://python-kyototycoon-binary.readthedocs.org.