joppot

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

サーバ

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

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

Pocket

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

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

関連記事

AWS環境でELB(ロードバランサー)とEC2サーバでapacheを使っている場合にhttpからhttpsにリダイレクトする方法

概要 みなさんこんにちはcandleです。今回はマニアックな記事ですが、恐らくスタートアップ企業などではわりと使う内容だと思うのでまとめておきます。 この方法が全てのサービス上でベストなやり方なのかど …

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

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

td-agentでRails 4のproduction.logを取得する

English 日本語 概要 みなさんこんにちはcandleです。今回はrails 4のproduction ログをtd-agentで取得してみたいと思います。 数年前にも同じ記事を書いたのですが、説 …

redmineにclose button pluginを入れて終了したチケットをボタン1つで閉じる

概要 みなさんこんにちはcandleです。今回はとても便利なチケットを終了させるボタンを、表示できるプラグンの導入の仕方を紹介します。 チケットは一般に以下のコマンドのみチケット詳細で表示されています …

railsのaws-sdk gemを使ってs3のファイルを削除する

by martinak15 概要 みなさんこんにちはcandleです。今回はs3にアップロードされている画像ファイルをrailsのaws-sdk gemを使用して削除してみたいと思います。 記事中で開 …

  • English
  • 日本語

プロフィール


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

スポンサードリンク

アーカイブ