Rubyでtokyotyrant使ってみた

OSXを使って、rubyでtokyotyrant使ってみた。

インストール

tokyocabinet

最新版を公式サイトから落としてくる。現時点での最新は、1.4.20だった。

% curl -O http://tokyocabinet.sourceforge.net/tokyocabinet-1.4.20.tar.gz
% tar xvzf tokyocabinet-1.4.20.tar.gz
% cd tokyocabinet-1.4.20
% ./confiruge --prefix=/usr/local
% make 
# make install
tokyotyrant

同様に、最新版を公式サイトのtokyotyrantのパッケージ一覧から落としてくる。現時点での最新は、1.1.26だった。

% curl -O http://tokyocabinet.sourceforge.net/tyrantpkg/tokyotyrant-1.1.26.tar.gz
% tar xvzf tokyotyrant-1.1.26.tar.gz
% cd tokyotyrant-1.1.26
% ./confiruge --prefix=/usr/local
% make 
# make install
tokyocabinet Ruby用API

同様に、最新版を公式サイトのRubyAPIの一覧から落としてくる。現時点での最新は、1.23だった。

% curl -O http://tokyocabinet.sourceforge.net/rubypkg/tokyocabinet-ruby-1.23.tar.gz
% tar xvzf tokyocabinet-ruby-1.23.tar.gz
% cd tokyocabinet-ruby-1.23
% ruby extconf.rb
% make 
# make install
tokyotyrant Ruby用API

同様に、最新版を公式サイトのRubyAPIの一覧から落としてくる。現時点での最新は、1.5だった。

% curl -O http://tokyocabinet.sourceforge.net/tyrantrubypkg/tokyotyrant-ruby-1.5.tar.gz
% tar xvzf tokyotyrant-ruby-1.5.tar.gz
% cd cd tokyotyrant-ruby-1.5
# ruby install.rb

tokyotyrantサーバを起動してみる

% sudo /usr/local/sbin/ttservctl start
Starting the server of Tokyo Tyrant
/usr/local/sbin/ttservctl: line 49: ulimit: open files: cannot modify limit: Invalid argument
Executing: ttserver -port 1978 -dmn -pid /var/ttserver/pid
Done

なんかエラーが出るので、/usr/local/sbin/ttservctl の49行目を見てみる。

48
49
50
if [ -n "$maxcon" ] ; then
   ulimit -n "$maxcon"
 fi

maxcon という変数を見てみると

21
22
23
dbname="$basedir/casket.tch#bnum=1000000"
maxcon="65535"
retval=0

ulimit がエラーらしいが、ulimit がよく分からない。適当に数字を maxcon=6000 とかしたらエラー消えたけどいいのか…?

というわけで、無事起動。

接続

シェルから接続する場合は、tcrmgr というコマンドを使うらしい。

値の設定

tcrmgr put {host} {key} {value} という書式でセットする。name というキーに、CHU といれるならば、

tcrmgr set localhost name CHU
値の取得

tcrmgr get {host} {key} という書式でゲットする。name というキーの値を取得するならば、

tcrmgr get localhost name

とりあえず、起動して動いているようだ。

Rubyでtokyotyrant使ってみた