CentOS5.3にMembaseをインストールする
NoSQLデータベースのMembaseが先日リリースされたので、早速インストールして試してみました。
Membaseについて詳しくはこちら。http://www.publickey1.jp/blog/10/memcashednosqlmembase.html
Membaseについてざっくり言うと、永続化可能なmemcachedってことでいいのかな?永続化可能でmemcached並に速ければ、TokyoTyrantに取って変わるんじゃないですかね?
インストール
http://www.northscale.com/get_started.html
どこからダウンロードするのかよくわからなかったけど、上記のURLを開いて一番右のMembaseを選び、必須項目を適当に埋めて登録をすればrpmが落とせます。
rpmを落としたら、rpm --installをすれば終了です。
$ sudo rpm --install northscale_server_1.6.0beta1_x86.rpm
インストールが完了したら、http://hostname:8080にアクセスしてみましょう。Membaseの設定はブラウザから行います。
メモリとかSSDとかの設定がでるけど、適当に画面を進めていけばいいと思います。あとから再設定できるのかはよくわかってません。
こんな感じの画面になったら設定終了です。この後は普通にmemcachedと同じように操作すれば大丈夫です。
Membaseが使うデフォルトのポート番号は11211で、memcachedと同じポートを使うようになっていますが、これをどうやって変更するのかはわかりません。誰か教えてください。
Membase vs memcached vs TokyoTyrant vs Redis
Membaseを入れてみたので、実際にどれくらいの速度が出るのか試してみました。
memcached vs TokyoCabinet vs TokyoTyrant vs Redis - blog.katsuma.tv
この記事のパクリですね。これにMembaseを加えてみた感じです。
クライアントによって速度が変わるのが嫌だったので、すべてPythonのmemcachedクライアントを使って、1万回setを行いその時間を計測してみました。
Membase | 1.18884205818 |
memcached | 0.683738946915 |
TokyoTyrant | 0.788640022278 |
Redis | 0.642278909683 |
思ったよりMembaseが遅い…。って言うかRedis速い。
まとめ
使おう!Redis!APIも豊富だし、レプリケーションとかも簡単らしいよ!
ちなみに今回計測に使ったコードはこちら
# -*- coding: utf-8 -*- import time import memcache def get_message(kbytes): return "1234567890" * 100 * kbytes if __name__ == '__main__': # initialize server = [ '11211', #Mmebase '11212', #memcache '1978', #Tokyo Tyrant + tch '6379', #Redis ] for s in server: print s mc = memcache.Client(['127.0.0.1:'+ s]) mc.flush_all() message_num = 10000 message_size = 1 message = get_message(message_size) # set start_time = time.time() for index in range(message_num): mc.set(str(index), message) end_time = time.time() # print progress time progress_time = end_time - start_time print 'set time: %s' % progress_time