【メムキャッシュディー】
Memcached とは?
最終更新:
💡 アプリが、使い直せる結果を一時保存する
キーと値で一時的なデータを保存するキャッシュシステム。アプリによる読み出しと更新、データ消失への備え、有効期限や複数台構成の注意点を解説します。
📌 このページのポイント
- キーと値で、問い合わせや計算の結果などをキャッシュする
- アプリが取得・保存を組み込み、失われた結果を作り直す
- 期限・追い出し・障害を想定し、更新時の扱いを決める
- 複数台へ分ける構成と、データ複製・自動切り替えは別
Memcachedは、データベースの代わりになる?
通常は、再取得できる結果を一時保存するキャッシュとして使う。例えば記事一覧の問い合わせ結果を保存し、次回はその値を使う。消えると困る唯一のデータを預ける保存先とは分けて考えよう。
データベースの前に置けば、自動で速くなる?
データはいつまで残るの?
有効期限を指定できるが、容量不足による追い出しや障害でもなくなる。期限を設定しない場合も、ずっと残る保証にはならない。キャッシュがなくても、必要な結果を再取得できるようにするよ。
再起動すると、必ず全部消える?
古い記事一覧が返ることはない?
台数を増やせば、データも自動で複製される?
もっと詳しく知りたい人へ
有効期限の0と、30日を超える値は?
公式ユーザーガイドでは、0は期限なし、30日までの値は秒数、30日を超える値はUnix時刻として扱うと説明しています。例えば長い期間を秒数のつもりで渡すと、意図と違う時点になることがあります。使うクライアントの指定方法も確認します。期限なしでも追い出しや消失は起こり得ます。
公開サーバーとして、誰でも接続できるようにしていい?
公式の構成ガイドは、Memcachedをインターネットや信頼できない利用者に直接公開しないよう説明しています。必要なアプリだけが接続できるネットワーク・待ち受け先・通信制御を設計します。認証があるから無条件に公開してよい、というものではありません。
まとめ:ざっくりこれだけ覚えればOK!
「Memcached」って出てきたら「アプリケーションからキーを指定して値を取得・保存するキャッシュシステム」と思えばだいたいOK!
📖 おまけ:英語の意味
「Memcached」 = メモリを中心に使うキャッシュの名称
💬 キャッシュ用のサーバープログラムです。名前にcacheが入る通り、再取得や再計算ができる結果を一時保存する用途で理解します。唯一のデータ保存先となるデータベースとは区別します。