Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


16.6.3.1 memcached の基本操作

memcached のインタフェースは、キャッシュ内の情報を格納および取得するために次のメソッドをサポートします。これらは、言語固有のしくみが異なる可能性がありますが、異なるすべての API 間で一貫しています。

  • get(key): キャッシュから情報を取得します。指定されたキーが存在する場合は、そのキーに関連付けられた値を返します。指定されたキーが存在しない場合は、NULLnilundefined、または対応する言語のもっとも近い等価要素を返します。

  • set(key, value [, expiry]): キャッシュ内のキーに関連付けられた項目を指定された値に設定します。これは、キーがすでに存在する場合は既存の項目を更新し、キーが存在しない場合は新しいキー/値ペアを追加します。失効時間が指定されている場合は、失効時間に達したときにその項目が失効します (そして削除されます)。この時間は秒単位で指定され、値が 30 日未満 (30*24*60*60) の場合は相対時間とみなされ、この値より大きい場合は絶対時間 (エポック) とみなされます。

  • add(key, value [, expiry]): 指定されたキーがまだ存在しない場合に、そのキーとそれに関連する値をキャッシュに追加します。

  • replace(key, value [, expiry]): 指定された key が存在する場合にのみ、そのキーに関連付けられた項目を置き換えます。新しい値は value パラメータで指定されます。

  • delete(key [, time]): key とそれに関連する項目をキャッシュから削除します。time を指定すると、指定した key による別の項目の追加が指定した期間だけブロックされます。

  • incr(key , value): key に関連付けられた項目を指定された value だけ増分します。

  • decr(key , value): key に関連付けられた項目を指定された value だけ減分します。

  • flush_all: キャッシュ内の現在の値をすべて無効化 (または失効化) します。これらは技術的にはまだ存在します (削除されません) が、次にアクセスしようとしたときに警告が表示されず破壊されます。

どの実装でも、これらの関数のほとんどまたはすべてが対応するネイティブ言語インタフェースによって複製されています。

可能な場合は、データベースの 1 つのカラム値をキャッシュするのではなく、memcached を使用してすべての項目を格納してください。たとえば、オブジェクト (請求書、ユーザー履歴、またはブログ投稿) に関するレコードを表示するときは、データベースから関連するエントリデータをロードし、それをアプリケーションが通常必要とする内部構造にまとめます。この完成されたオブジェクトをキャッシュに保存します。

複雑なデータ構造は直接格納できません。ほとんどのインタフェースは、データを自動的に直列化 (つまり、元のポインタとネストを再構築できるテキスト形式に変換) します。Perl では Storable、PHP では serialize、Python では cPickle (または Pickle)、Java では Serializable インタフェースがそれぞれ使用されます。ほとんどの場合、使用される直列化インタフェースはカスタマイズ可能です。memcached インスタンスに格納されたデータを異なる言語インタフェース間で共有するには、JSON (Javascript Object Notation) などの共通の直列化ソリューションの使用を検討してください。