NoSQLの種類
第1回第2回とNoSQLとRDBMSの比較を行ってきました。では、
こちらのブログで紹介されていますが、
さて、
TokyoCabinet/TokyoTyrantとは
TokyoCabinet
KVSとしてはmemcachedというオンメモリ型のデータベースが有名ですが、
また、
TokyoCabinet/TokyoTyrantを使ってみよう
それでは実際にTC/
OS | CentOS_5. |
インストールするプログラム | TokyoCabinet |
TokyoTyrant | |
perlで使用するためのモジュール | TokyoTyrant-perl |
TokyoCabinet
①ソースのダウンロード&展開
Tokyo Cabinetのサイトからソースのダウンロードを行います。2010/
$ wget http://fallabs.com/tokyocabinet/tokyocabinet-1.4.46.tar.gz 《中略》 2010-10-22 17:57:10 (358 KB/s) - `tokyocabinet-1.4.46.tar.gz' saved [1002423/1002423] $ ls tokyocabinet-1.4.46.tar.gz
正常にダウンロードできました。
続いて展開です。
$ tar zxvf tokyocabinet-1.4.46.tar.gz 《中略》 正常に展開されました。
②ソースのコンパイル&インストール
続いてソースのコンパイル作業です。
・事前準備
私の環境では、
$ su - Password: # yum install zlib-devel # yum install bzip2-devel yumは便利ですね(^o^)/ # exit 一般ユーザに戻ります。 $ cd tokyocabinet-1.4.46 $ ./configure --enable-off64 《中略》 #================================================================ # Ready to make. #================================================================ 正常に終了しました。
- ※--enable-off64は32ビット環境で64ビットのファイルオフセットを扱うために必要。つけなかった場合はDBサイズが2Gでエラーとなる可能性もある。
続いてmakeします。
$ make 《中略》 #================================================================ # Ready to install. #================================================================ そしてinstall $ su - Password:? # make install 《中略》 #================================================================ # Thanks for using Tokyo Cabinet. #================================================================
これでTokyocabinetがインストールされました。
Tokyo Tyrant
①ソースのダウンロード&展開
Tokyo Tyrantのサイトからソースのダウンロードを行います。2010/
$ wget http://fallabs.com/tokyotyrant/tokyotyrant-1.1.41.tar.gz 《中略》 $ tar zxvf tokyotyrant-1.1.41.tar.gz 《中略》 $ cd tokyotyrant-1.1.41
②ソースのコンパイル&インストール
configureとmakeを続けて行います。
$ ./configure && make $ su - Password: # make install
TokyoTyrant-perl
①ソースのダウンロード&展開
Tokyo Tyrantのサイトからソースのダウンロードを行います。2010/
$ wget http://1978th.net/tokyotyrant/perlpkg/tokyotyrant-perl-1.16.tar.gz 《中略》 $ tar zxvf tokyotyrant-perl-1.16.tar.gz? 《中略》 $ cd tokyotyrant-perl-1.16 $ ls 《略》
Perlモジュールは慣例的に以下のようにコンパイルします。
$ perl Makefile.PL && make $ su - Password:? # make install OK!
これで必要なプログラムはすべて入りました。
TokyoTyrantの起動
ライブラリや実行ファイルへのパスを通しつつttservctlコマンドに対し、
$ su - Password: # env \ LD_LIBRARY_PATH=/usr/local/lib \ PATH=/usr/local/bin:$PATH \ /usr/local/sbin/ttservctl start
環境によっては/usr/
# /usr/local/sbin/ttservctl start
これだけでよいかもしれません。
自動起動させたい場合は、
env \ LD_LIBRARY_PATH=/usr/local/lib \ PATH=/usr/local/bin:$PATH \ /usr/local/sbin/ttservctl start
接続確認してみましょう。tcrmgrコマンドを使って確認ができます。
データを登録してみましょう。$ tcrmgr put localhost name wakimoto
キーとバリューをputします。この場合は、
$ tcrmgr get localhost name? wakimoto
キー:nameを指定したら、
おまけ
ネットワークポートの確認
TokyoTryrantはデフォルトで1978ポートを使用します。
$ netstat -ant | grep 1978 tcp 0 0 0.0.0.0:1978 0.0.0.0:* LISTEN
開いていますね!
プロセスの確認
ttserverプロセスがいるか確認します。
$$ ps ax | grep ttserver 9924 Sl 0:00 ttserver -port 1978 -dmn -pid /var/ttserver/pid /var/ttserver/casket.tch#bnum=1000000
いました!
うまくいかなかったときのための情報収集の参考にしてください。
perlからの接続
perlから接続確認をしてみましょう。
TokyoTyrantモジュールをuseします。
#!/usr/bin/perl use strict; use TokyoTyrant;
RDBをインスタンス化し、
my $rdb = TokyoTyrant::RDB->new(); if(!$rdb->open("localhost", 1978)) { my $ecode = $rdb->ecode(); die ("open error: %s\n", $rdb->errmsg($ecode)); }
$rdbオブジェクトのputメソッドで、
$rdb->put("name", "Wakimoto"); $rdb->put("address", "Yokohama"); $rdb->put("phone", "090xxxxxxxx");
getメソッドでキーを指定してバリューを取り出します。
表示して終了します。
print "name:", $name, "\n"; print "address:", $address, "\n"; print "phone:", $phone, "\n";
簡単ですね!
次回は、