ビルド
FROM ubuntu:23.10 RUN apt-get -y update \ && apt-get -y install \ vim \ autotools-dev \ automake \ build-essential \ libtool \ libevent-dev \ libssl-dev \ libboost-all-dev RUN apt-get -y install \ git \ wget \ && wget http://memcached.org/latest \ && tar -zxvf latest WORKDIR /memcached-1.6.21 RUN ./configure --enable-proxy\ && make \ && make test \ && make install
conf
以下のようにconfを書く。これはproxy modeで起動されたmemcachedに対してget /foo/aaa
といったコマンドを発行するとbackends = {"127.0.0.1:11212", "127.0.0.1:11213"},
で設定したサーバに対してproxyされていく
local s = require("simple") -- by default, sends "/foo/*" to "foo" and "/bar/*" to "bar" pool{ name = "foo", backends = {"127.0.0.1:11212", "127.0.0.1:11213"}, } pool{ name = "bar", backends = {"127.0.0.1:11214", "127.0.0.1:11215"}, }
その他
stats proxy
とかで状態を見たりすることはできるがmemcachedそれぞれで監視をしておく必要がある。APIによる構成変更とうもできるようなので死活監視からの動的変更なんかもさっと実装できるようになっている模様。Luaで分離してパフォーマンスは大丈夫なのか?って思ったがWhy Luaあたりにも書いてある通り気にするレベルではないとのこと。