Memcache の使用方法

このページでは、Google Cloud コンソールを使用してアプリケーションの Memcache サービスを構成、モニタリングする方法について説明します。また、App Engine Memcache Go API を使用して、キャッシュされる値を設定および取得する方法についても説明します。Memcache については、Memcache の概要をご覧ください。

Memcache の構成

  1. Google Cloud コンソールの [Memcache] ページに移動します。
    [Memcache] ページに移動
  2. 使用する Memcache サービスレベルを選択します。

    • 共有(デフォルト) - 無料で、ベスト エフォート ベースでキャッシュ容量を提供します。
    • 専用 - キャッシュ サイズ使用量の GB 時間で請求され、アプリケーションに対して固定キャッシュ容量が独占的に割り当てられます。

    使用可能なサービスクラスについては、Memcache の概要をご覧ください。

Go API のインポート

memcache パッケージをインポートするには:

import "google.golang.org/appengine/memcache"

値のキャッシュへの保存と取得

値をキャッシュに保存する

キーの値がまだ存在しない場合にのみ、Add() を使用してキーの値を書き込みます。

item := &memcache.Item{
        Key:   "[KEY]",
        Value: []byte("[VALUE]"),
}
memcache.Add(c, item)

ここで、cappengine.Context です。

Add や値の設定に使用するその他の関数の詳細については、Memcache API リファレンスをご覧ください。

キャッシュに保存された値を検索する

Get() を使用して、指定したキーの項目を取得します。

memcache.Get(ctx, "[KEY]")

Get や値の検索に使用するその他の関数の詳細については、Memcache API リファレンスをご覧ください。

次の例は、Go API を使用して Memcache 値を追加、設定、取得する方法を示しています。

ctxappengine.Context と想定しています。

// Create an Item
item := &memcache.Item{
	Key:   "lyric",
	Value: []byte("Oh, give me a home"),
}
// Add the item to the memcache, if the key does not already exist
if err := memcache.Add(ctx, item); err == memcache.ErrNotStored {
	log.Infof(ctx, "item with key %q already exists", item.Key)
} else if err != nil {
	log.Errorf(ctx, "error adding item: %v", err)
}

// Change the Value of the item
item.Value = []byte("Where the buffalo roam")
// Set the item, unconditionally
if err := memcache.Set(ctx, item); err != nil {
	log.Errorf(ctx, "error setting item: %v", err)
}

// Get the item from the memcache
if item, err := memcache.Get(ctx, "lyric"); err == memcache.ErrCacheMiss {
	log.Infof(ctx, "item not in the cache")
} else if err != nil {
	log.Errorf(ctx, "error getting item: %v", err)
} else {
	log.Infof(ctx, "the lyric is %q", item.Value)
}

Google Cloud コンソールで Memcache をモニタリングする

  1. Google Cloud コンソールの [Memcache] ページに移動します。
    [Memcache] ページに移動
  2. 次のレポートを調べます。
    • Memcache サービスレベル: アプリケーションが共有または専用のどちらのサービスレベルを使用しているかを示します。プロジェクトのオーナーの場合は、2 つのサービスレベルを切り替えることができます。詳細については、サービスレベルをご覧ください。
    • ヒット率: キャッシュから提供されたデータ リクエストのパーセンテージと、そのデータ リクエストの実数が表示されます。
    • キャッシュ内のアイテム
    • 最も古いアイテムの経過期間: 最も古いキャッシュされたアイテムの経過期間。アイテムの経過時間は使用(読み取りまたは書き込み)されるたびにリセットされます。
    • 総キャッシュ サイズ
  3. 次の操作を行うことができます。

    • 新しいキー: 新しいキーをキャッシュに追加します。
    • キーを検索: 既存のキーを取得します。
    • キャッシュをフラッシュ: キャッシュからすべてのキーと値のペアを削除します。
  4. (専用 Memcache のみ)ホットキーのリストを参照します。

    • 「ホットキー」は Memcache 内の 100 クエリ/秒(QPS)以上を受信するキーです。
    • このリストには QPS の高い順で並べ替えられた最大 100 個のホットキーが含まれます。

次のステップ