PythonからTokyoTyrantをつかう

TokyoTyrantなるものを使ってみました。

なんぞや

TokyoTyrantTokyoCabinetをネットワーク越しに使えるようにしたりmemcache互換プロトコルを喋れるようにしたりするラッパーです。
TokyoCabinetはシンプル高速なKey-Value形のデータベースで、mixiの中の人製だそうです。

インストール

TokyoCabinetTokyoTyrantをソースからインストール。
zlibとbzip2が必要なので注意

apt-get install zlib1g
apt-get install bzip2

wget http://sourceforge.net/projects/tokyocabinet/files/tokyocabinet/1.4.31/tokyocabinet-1.4.31.tar.gz/download
wget http://tokyocabinet.sourceforge.net/tyrantpkg/tokyotyrant-1.1.33.tar.gz

して、展開してそれぞれ./configure;make;make install
するりと入る。

pytyrant

Pythonから使いたいのでpytyrantを入れる。ついでにmemcachedも入れる

easy_install pytyrant
easy_install python-memcached

id:perezvonさんのpython-tokyotyrantはうまく導入できませんでした…うぬぬ

使ってみる

tokyotyrantを起動

/usr/local/sbin/ttservctl start

デフォルトではポート1978で起動する。
まずはpytyrantから使ってみる。

In [1]: import pytyrant
In [2]: client = pytyrant.PyTyrant.open()
In [3]: client["feiz"] = "nullpo"

In [4]: client.get("feiz")
Out[4]: 'nullpo'

とれた。当然裏側ではファイルに永続化されてるので、対話シェルを落としたりtokyotyrantを落として立ち上げなおしたりしてもデータが取り出せます。

tokyotyrantはmemcache互換プロトコルを喋るとのことなので、memcacheから使ってみる。

In [6]: import memcache
In [7]: client = memcache.Client(["localhost:1978"])

In [8]: client.get("feiz")
Out[8]: 'nullpo'

なるほど。

TokyoTyrantまとめ

導入簡単
使うの簡単
永続化する
memcache互換

djangoから使う?

memcacheプロトコルを喋れるということはdjangoのCACHE_BACKENDとして設定できるということだろうか?
こんどためす。