TokyoCabinet/TokyoTyrantを使う (1) インストール
ubuntuならaptでインストールできますが、ここではソースコードからビルドしてみます。
ソースのtarボールをダウンロードしたら、適当なディレクトリに展開して一気にビルド&インストールしちゃいましょう。
まずはTokyoCabinetから。
1 2 3 4 5 6 |
$ wget http://fallabs.com/tokyocabinet/tokyocabinet-1.4.48.tar.gz $ tar xzf tokyocabinet-1.4.48.tar.gz $ cd tokyocabinet-1.4.48 $ ./configure $ make $ sudo make install |
configureで「bzlib.hが無い」と言われた場合は、libbz2-devをインストールします。
libbz-devで検索しても見つからないので注意してください。
続いてTokyoTyrant。
1 2 3 4 5 6 |
$ wget http://fallabs.com/tokyotyrant/tokyotyrant-1.1.41.tar.gz $ tar xzf tokyotyrant-1.1.41.tar.gz $ cd ../tokyotyrant-1.1.41 $ ./configure $ make $ sudo make install |
インストールができたら、サーバを起動して、データを格納してみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$ sudo /usr/local/sbin/ttservctl start # サーバ起動 $ telnet localhost 1978 # telnetでlocalhostのポート1978にアクセス Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. set foo 0 0 4 hoge STORED get foo VALUE foo 0 0 4 hoge END ^] telnet> quit Connection closed. $ sudo /usr/local/sbin/ttservctl stop # サーバ停止 |
上記の例では、memcachedプロトコルを使って、キー’foo’の値として4文字のデータ’hoge’を格納しています。
‘^]’はCtrl+]です。
このままではその都度サーバを起動しなくてはならないので、起動スクリプトを作りましょう。
1 2 |
$ sudo ln -s /usr/local/sbin/ttservctl /etc/init.d/ttservd $ sudo /usr/lib/insserv/insserv ttservd |
ttservctlの実体はttserverの起動スクリプトです。この例ではttservdという名前でリンクを張っています。
このスクリプトはなぜかttserverが配置されている/usr/local/binにパスが通っていなくて、OS起動時の自動起動に失敗するので、パスの記述を追加しておきます。
28行あたり。PATHの設定に/usr/local/binを追加します。
1 2 3 4 5 6 7 8 9 |
--- /usr/local/sbin/ttservctl.orig 2014-06-14 19:16:11.559197736 +0900 +++ /usr/local/sbin/ttservctl 2014-06-14 19:16:48.019197078 +0900 @@ -25,7 +25,7 @@ # setting environment variables LANG=C LC_ALL=C -PATH="$PATH:/sbin:/usr/sbin:/usr/local/sbin" +PATH="$PATH:/sbin:/usr/sbin:/usr/local/sbin:/usr/local/bin" export LANG LC_ALL PATH |
OSを再起動して動作確認してみましょう。
1 2 |
$ tcrmgr get localhost foo hoge |
TokyoCabinetのデータはファイルに永続化されているので、再起動のあともさきほど格納したキーfooの値hogeが保持されています。