joppot

コピペで絶対動く。説明を妥協しない

サーバ

macにmemcachedをインストールする方法と動作確認

投稿日:2014年7月9日 更新日:


Cardinal in Spruce Tree

概要

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で必要となる他のライブラリもインストールしてくれます。

installmemcached

インストールの最後に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

startmemcached

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を起動している場合には下の様に表示されます。

psmemcached

telnetからmemcachedを使う

telnetは便利なツールで様々な事ができるunixソフトですが、memcachedにも対応しています。

memcached側で本当に値が保存できているのか確認したいので、一度memcachedを止めて

/usr/local/opt/memcached/bin/memcached -vv

startmemcachedvv

で起動した上で、別のウィンドウで、下のコマンドを打ちましょう。

telnet localhost 11211

何か値をストックしてみましょう。
ストックするコマンドはsetコマンドです。

set key flags expiretime bytes
value

試しに下のコマンドを打ちましょう。
setコマンドを打った後に、バリューを入力します。

set hoge 0 0 4
huga

telnet11211

上の場合はkeyがhogeでvalueがhugaです。
STOREDが出れば成功です。

getコマンドでバリューを取得しましょう。
一般に下のコマンドで取得できます。

get key

上のサンプルに基づけば、

get hoge

を入力します。

gethoge

まあ、telnetでmemcachedを使うのはあくまで動作確認だけですね。
memcachedから終了するには「ctrl+]」でログアウトして、「q」を打ち込めばtelnetが終了します。

まとめ

以上でmemcachedのインストールと、簡単な動作確認をやってみました。memcached自体はphpとかrailsとかと組み合わせて使うので、今後それもやって行きましょう。

スポンサードリンク

「為になったなぁ」と思ったら、シェアお願いします。

-サーバ

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

ruby on railsのckeditor gemをapacheのproductionの本番環境で動かす

概要 みなさんこんにちはcandleです。今回はckeditorを本番環境で動かしてみたいと思います。 とは言っても基本的な記述はdevelopment環境と同じなので、そこまでは前回の記事を参照お願 …

MAMPでSSLを使ったhttps通信を行う

概要 みなさんこんにちはcandleです。最近SSL通信で根幹に関わるセキュリティホールが見つかったのは記憶に新しいですね。 今回扱う、https通信というのは公開鍵暗号方式を使ったセキュアな通信のこ …

railsのaws-sdk gemを使ってs3のフォルダ(folder)を削除する

概要 みなさんこんにちはcandleです。今回はs3にあるフォルダを丸ごとrailsのaws-sdk gemを使用して削除してみたいと思います。 実はこの方法を確立するまですごく四苦八苦しました。なん …

apacheのmod_rewriteでphpのGETパラメータのurlを書き換える

概要 みなさんこんにちはcandleです。今回はphpでgetでパラメータを受け取る際のurlの書き換えです。 例えば、phpよくあるのがこのようなurlではないでしょうか。 http://local …

sshコマンドをaliasかssh configを使って短縮する

概要 みなさんこんにちはcandleです。今回はsshの接続先のホスト名を短くする方法です。 ssh接続は非常に強力なネットワークツールですが、接続先の指定がやや面倒ですね。それを単純にする方法をまと …

  • English
  • 日本語

ベンチャー企業のCTOをやってます。大学時代にプログラミングを始め、javaから入門し、C++へて、PHPへと進み、会社ではRailsを使用。自動化が大好きなプログラマー