概要
memcachedはrailsやphpのセッションを保持しておく時に使うソフトというかサーバ的なものです。一般にSNSやログイン式のサービスを提供する時はセッションというのを持ちます。セッションというのはユーザがサービスに認証を経て正しく参加しているかの情報を持っているものです。
このセッションは様々なとこに置くことができます。有名なところだと、ブラウザのクッキーやnginxのphpfpmだとサーバの適当なディレクトリに置いたり、railsだとデータベースに入れたりできます。
そのセッションの1つの置き場として、memcachedがあります。
memcachedは簡単なデータのインプット・アウトプットとして優れたサーバで、ここでセッションを管理すると比較的に速いサービスが提供できると言われています(candleは比較した事がないのでなんともいえないですが)。
インストールの仕方と起動、をやってみましょう。
下のサイトを参考にさせてもらいました。ありがとうございます。
http://morizyun.github.io/blog/gem-dalli-memcache/
前提
homebrewが入っている
memcachedをインストールする
homebrewが入っているなら、下のコマンドでインストールします。
brew install memcached
自動的にmemcachedで必要となる他のライブラリもインストールしてくれます。
インストールの最後に3つほど、実行してくださいと表示されます。
一番上のlnコマンドは、どんな場合でも実行しておいてください。
私の場合は下のコマンドを打つ様に出てきました。
ln -sfv /usr/local/opt/memcached/*.plist ~/Library/LaunchAgents
次の、launchctlコマンドは常にmemcachedを起動させるかどうかのコマンドです。
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.memcached.plist
この1文を実行しておけば、次回PCをシャットダウンして起動した時に自動的にmemcachedが起動します。ちなみに、この設定は後で変えられます。
最後の1文はlaunchctlで起動したくない場合に直接memcachedサーバを起動させるコマンドです。このコマンドでmemcachedを起動した場合はその処理を止めるとmemcachedサーバも止まります。簡単に使いたい場合はこっちの方が手軽です。
/usr/local/opt/memcached/bin/memcached
memcachedの起動と停止
memcachedはサーバなので、起動したり停止したりできます。
直接memcachedを起動する
先ほど、上で紹介した様に、「 /usr/local/opt/memcached/bin/memcached」見たいに、フルパスで実行しても良いのですが、brewで入れているので「memcached」と入力するだけで、サーバが起動します。
memcached
memcachedコマンドは打ち込んだあとスタンバイ状態になります。
止めるにはctrl+cを押しましょう。
launchctlでサーバを起動する
launchctlで起動させる為のmemcachedのpiltファイルはホームディレクトリのLibraryの中のLaunchAgentsの中にあります。これですね。homebrew.mxcl.memcached.plist
下のコマンドを実行すれば、起動します。
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.memcached.plist
止めるには
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.memcached.plist
と実行すれば止まります。
memcachedが起動しているか確認する
memcachedはコマンドを実行しただけだと、いまいち実行されているか分からないので、下のコマンドで確認してください。
ps aux | grep memcached
launchctlでmemcachedを起動している場合には下の様に表示されます。
telnetからmemcachedを使う
telnetは便利なツールで様々な事ができるunixソフトですが、memcachedにも対応しています。
memcached側で本当に値が保存できているのか確認したいので、一度memcachedを止めて
/usr/local/opt/memcached/bin/memcached -vv
で起動した上で、別のウィンドウで、下のコマンドを打ちましょう。
telnet localhost 11211
何か値をストックしてみましょう。
ストックするコマンドはsetコマンドです。
set key flags expiretime bytes value
試しに下のコマンドを打ちましょう。
setコマンドを打った後に、バリューを入力します。
set hoge 0 0 4 huga
上の場合はkeyがhogeでvalueがhugaです。
STOREDが出れば成功です。
getコマンドでバリューを取得しましょう。
一般に下のコマンドで取得できます。
get key
上のサンプルに基づけば、
get hoge
を入力します。
まあ、telnetでmemcachedを使うのはあくまで動作確認だけですね。
memcachedから終了するには「ctrl+]」でログアウトして、「q」を打ち込めばtelnetが終了します。
まとめ
以上でmemcachedのインストールと、簡単な動作確認をやってみました。memcached自体はphpとかrailsとかと組み合わせて使うので、今後それもやって行きましょう。