最近なにかと話題のmemcache!
いろんなところでお話を聞きますね。なんだかとにかく早いだとか・・・
様はセッションストレージをファイルシステムやデータベースに指定するのではなく、メモリー上で簡潔させてしまいましょうよって解釈でいいのだろうか・・・
とりあえず、本家より抜粋。
memcached is a high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.
ふむふむ、
へーデーモンなんだ。データベース負荷を軽減させることによってウェブアプリを処理を加速させる。で、高性能なキャッシュ分配メモリオブジェクトですって。
確かに興味津々です。では早速インストール!
え!?ない?無いですよ・・・。なんで、devianとかあるっぽいのに!しかたがないので、ソースから、 とりあえず、READMEを読んでみるとlibeventをインストールしろよと、言っている。 テストもどうやら全てOKだったみたい。では、いよいよ本命! これでインストールは完了です。 では、またまた本家より抜粋。 # ./memcached -d -m 2048 -l 10.0.0.40 -p 11211 This starts memcached up as a daemon, using 2GB of memory, and listening on IP 10.0.0.40, port 11211. Because a 32-bit process can only address 4GB of virtual memory (usually significantly less, depending on your operating system), if you have a 32-bit server with 4-64GB of memory using PAE you can just run multiple processes on the machine, each using 2 or 3GB of memory. どうやらコマンドラインからデーモンを起動させるみたいで、また設定ファイルは無いようだ。さらに、この例だどmemcache様に2Gのメモリー容量を確保して、さらに自分のIPアドレス(これって127.0.0.1とかじゃ、だめなのかな?)。で、最後はポート番号の様だ。なるほど、OSに依存するけどとりあえずは32bitの場合はメモリー領域4Gの制限があるとか、なんとか・・・。とりあえずトイスタサーバは32bitプロセッサなので、このとおりに起動させてみよう。 なんかとっても嫌なエラーがでました。さっきlibeventはインストールしたはずだが。とにかく、 もう一回!
注)rootで実行すると起こられます。確かにこの手のライブラリでroot権限ありえない。。。その場合は-uオプションで、実行ユーザを指定してください。memcache用にユーザを作成しておくと安全かもしれません。 netstatでもしっかり確認がとれました。 ちなみに、freeで確認したところトイスタサーバは512Mしかメモリを積んでいないのに、2Gでmemcachedを起動したら何事もなく起動したけど、Railsとの連携でセッションが全く保存されないという事態に陥りました。まったくログとか出ないので、結構はまりました・・・ では、ここからが本番です。実際のRoRをmemcacheで動かしてみます。 で、enviroments.rbを編集。 で、アプリの再起動。こんな感じで終了です。 まぁ、まとめると今日は『もう一回!』って言いたかっただけなので、とりあえずはこれで寝るとしよう。 トイスタでしばらく様子をみて問題がなければマタタビさんにも、入れてあげることにしよう。
yum install memcached
Loading “installonlyn” plugin
Setting up Install Process
Setting up repositories
Reading repository metadata in from local files
Parsing package install arguments
Nothing to do
wget http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz
tar zxvf memcached-1.2.2.tar.gz
cd memcached-1.2.2
なので、
wget http://www.monkey.org/~provos/libevent-1.3.tar.gz
tar zxvf libevent-1.3.tar.gz
./configure
make
make install
make verify
cd memcached-1.2.2
./configure
make
make install
First, you start up the memcached daemon on as many spare machines as you have. The daemon has no configuration file, just a few command line options, only 3 or 4 of which you’ll likely use:
./memcached -d -m 2048 -l xxx.xxx.xxx.xxx -p 11211
./memcached: error while loading shared libraries: libevent-1.3.so.1: cannot open shared object file: No such file or directory
/usr/local/lib/の下にある、libevent-1.3.so.1は見てくれていないようなので、こいつを
/usr/libにシンボリックリンクを作成しました。で、
./memcached -d -m 2048 -l xxx.xxx.xxx.xxx -p 11211
もちろんmemcacheは起動ファイルを作成しました。
tcp 0 0 210.171.169.93:11211 0.0.0.0:* LISTEN
gem install memcache-client
config.action_controller.session_store = :mem_cache_store
うむぅ、、、ちょっと早くなった気がする。

