Mysql-proxy-cacheを使ってみました

| Comments

pg-poolⅡのmysql版 は無いものか?(特にqueryのキャッシュ目的)と探していた所
mysql-proxy-cache なるものを発見しました。

ubuntu1204で、動かしてみましたので、そのメモを

まずは、動作に必要なパッケージを導入します。
パッケージが見つかるものはaptで、えいえいっ!っと

1
2
3
4
5
sudo aptitude install mysql-proxy
sudo aptitude install memcached
sudo aptitude install luarocks
sudo aptitude install liblua5.1-md5-0
sudo aptitude install luasocket

見つからないものは、debのパッケージがあったのでそちらを
debパッケージをxwindowsからダブルクリック!(いいのか!)
mysql-proxy-cache.lua はmysql-proxyのluaファイル置き場に配置しました。

1
2
wget https://luamemcached.googlecode.com/files/liblua5.1-memcached0.deb
wget https://raw.github.com/clofresh/mysql-proxy-cache/master/mysql-proxy-cache.lua

それでは、満を持して。。。と、起動すると

1
mysql-proxy --proxy-lua-script=mysql-proxy-cache.lua

起動しません。何かが足りないようです。

webサーフィンをして、今は以下のように記述する必要がある事が解りました。

1
mysql-proxy --plugins=proxy --proxy-backend-addresses=localhost:3306

この段階で、proxy指定でmysqlに接続可能です。

しかしクラ○ン。無駄作業ではないぞ。・・・と、 mysql-proxy-cacheを指定して起動すると
どうやら、パッケージが見つからないようです。
参考にさせて頂いたluaの技術情報サイト の情報を元に、環境変数でパッケージの場所を教えます。
そして、以下のような起動スクリプトを書くことで、ようやく起動しました!

起動スクリプト - start-mysql-proxy-cache.bash
1
2
3
4
5
6
7
8
#!/bin/bash
export LUA_PATH="./?.lua;/usr/local/share/lua/5.1/?.lua;/usr/local/share/lua/5.1/?/init.lua;/usr/local/lib/lua/5.1/?.lua;/usr/local/lib/lua/5.1/?/init.lua;/usr/share/lua/5.1/?.lua;/usr/share/lua/5.1/?/init.lua"
export LUA_CPATH="./?.so;/usr/local/lib/lua/5.1/?.so;/usr/lib/i386-linux-gnu/lua/5.1/?.so;/usr/lib/lua/5.1/?.so;/usr/local/lib/lua/5.1/loadall.so"
mysql-proxy \
  --plugins=proxy \
  --proxy-backend-addresses=localhost:3306 \
  --proxy-lua-script=/usr/lib/mysql-proxy/lua/mysql-proxy-cache.lua \
  --log-level=debug

キャッシングされたQueryは当然超高速です。
ワーイ♪ゝ(▽`ゝ)(ノ´▽)ノワーイ♪