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

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

関連記事

CentOSのfluentdでapacheのaccess logとerror logを取得する

概要 みなさんこんにちはcandleです。今回はapacheのアクセスログとエラーログをfluentdを使って取得して見たいと思います。 前提 一台のサーバ上にapacheサーバとfluentdサーバ …

railsのfluent-logger gemを使ってユーザーのアクセスをfluentdサーバに収集する

概要 みなさんこんにちはcandleです。前回からfluentd関連の記事を続けていますが、今回辺りから実用的な使い方を書いていきたいと思います。 fluentdと言えば、ビックデータで扱うようなデー …

AMIMOTO AMIのnginx上でvirtual hostを設定してphpサービスをリリースする

概要 みなさんこんにちはcandleです。今回はAMIMOTO AMIのnginx上でバーチャルホストを使う場合の設定をやってみたいと思います。 AMIMOTO AMIは高速でwordpressを作成 …

fluentdでrails logをtailで直接取得する方法

概要 追記) この記事はだいぶ古くなってしまったので、新しく書き直しました。 こちらの方を参照した方が多分良いことが書いてあります。 https://joppot.info/2017/03/17/35 …

awsのs3を操作する為のaccess keyとsecret keyを取得する(IAM)

概要 皆さんこんにちはcandleです。今回はrailsやphpからS3にファイルをアップロードしたりする権限を取得する方法を紹介します。一般にS3にファイルをアップロードしたり削除するにはアクセスキ …

  • English
  • 日本語

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