Hatena::ブログ(Diary)

logiqboard このページをアンテナに追加 RSSフィード Twitter

2009-08-13

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として設定できるということだろうか?

こんどためす。

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。

トラックバック - http://d.hatena.ne.jp/feiz/20090813/1250151478
Connection: close