mycachedを入れようと思ってtrunkのコード見てたら、mycachedのレスポンス形式にmsgpackが追加されてた。知らなかった。
msgpack-0.4.3のインストール。
cd /usr/local/src wget http://downloads.sourceforge.net/project/msgpack/msgpack/cpp/msgpack-0.4.3.tar.gz tar zxvf msgpack-0.4.3.tar.gz cd msgpack-0.4.3 ./configure && make && make install
mycachedのインストール。
cd /usr/local/src svn co http://svn.coderepos.org/share/platform/mysql/mycached/trunk mycached cd mycached g++ -DMYCACHED_USE_EPOLL=1 -DMSGPACK=1 -shared -fPIC -Wall -g -O2 -I../mysql-5.1.50/include -I../mysql-5.1.50/sql -I../mysql-5.1.50/regex mycached_as_udf.cc -o mycached_as_udf.so install -m 755 mycached_as_udf.so /usr/local/mysql/lib/mysql/plugin
/usr/local/mysql/bin/mysql -u root -e "CREATE FUNCTION mycached_start RETURNS INT SONAME 'mycached_as_udf.so'" /usr/local/mysql/bin/mysql -u root -e "CREATE FUNCTION mycached_stop RETURNS INT SONAME 'mycached_as_udf.so'" /usr/local/mysql/bin/mysql -u root -e "SELECT mycached_start(inet_aton('127.0.0.1'), 11211, 4);"
動作確認しててgetできないテーブルがあったのでコード見てみたら、今のところmycachedはPRIMARY KEYがintじゃないとダメらしい。
msgpackのレスポンスがバイナリなのでコピペがうまくいってないけど、msgpackがデータサイズ18バイトで一番効率がよい。
% telnet localhost 11211 Trying ::1... Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. get test.t1.1 VALUE test.t1.1 0 20 id:1:1message:4:hoge END get test.t1.1:json VALUE test.t1.1 0 25 {"id":1,"message":"hoge"} END get test.t1.1:msgpack VALUE test.t1.1 0 18 ��id�message�hoge END
PlanetMySQL Voting: Vote UP / Vote DOWN