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行目を見てみる。
if [ -n "$maxcon" ] ; then
ulimit -n "$maxcon"
fi
maxcon という変数を見てみると
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
とりあえず、起動して動いているようだ。