google.appengine.api.memcache パッケージ

概要

Memcache API。

DataStore API による信頼性の高いストレージが不要で、より高いパフォーマンスが求められる場合に、メモリにデータを格納する memcached に似た API をアプリケーション デベロッパーに提供します。

内容

class google.appengine.api.memcache.Client(servers=None, debug=0, pickleProtocol=2, pickler=function, unpickler=function, pload=None, pid=None, make_sync_call=None, _app_id=None) ソース

ベース: オブジェクト

Memcache クライアント オブジェクト。これにより、すべての memcache オペレーションが呼び出されます。

既存の一般的な Python memcache ライブラリとのソースレベルでの互換性を保持するために、一部のメソッドでは何も実行されません。

「キー」引数を使用するメソッドは、そのキーを文字列(Unicode または他の文字コード)またはタプル(hash_value、string)として受け入れます。hash_value は通常 memcache インスタンスにシャーディングするために使用されますが、Google App Engine ではシャーディングが透過的に処理されるため無視されます。memcache のキーは、指定されたエンコーディングのない単なるバイトです。そのようなすべてのメソッドで、偽装キー値が指定されている場合には TypeError を、キーが大きすぎる場合には ValueError が発生します。

「値」引数を使用するメソッドは、すべてのネイティブ型を含めて、任意の文字列(Unicode または他の文字コード)、int、long、または pickle 対応の Python オブジェクトとしてその値を受け入れます。最初に入れたのと同じタイプのキャッシュから戻ります。

Client クラスは、gets()、cas() および cas_multi() メソッド(およびその他の比較および設定に関連するメソッド)に対してスレッドセーフではありません。したがって、クライアント オブジェクトは、CAS の目的で複数のスレッドで使用すべきではありません。モジュール レベルの関数のグローバル クライアントは、CAS メソッドのいずれも公開していないため、問題ありません。

add(key, value, time=0, min_compress_len=0, namespace=None) ソース

memcache にまだアイテムがない場合は、キーの値を設定します。

パラメータ
  • key – 設定するキー。詳細については、クライアントのドキュメントをご覧ください。

  • value – 設定する値。任意の型。複雑な場合は pickle 化されます。

  • time – 有効期間で、省略可能です。現在時刻からの相対秒数(最大 1 か月)または Unix エポックタイムからの絶対時刻で指定します。デフォルトではアイテムに期限はありませんが、メモリ不足により強制排除される場合があります。浮動小数点値は整数秒に切り上げられます。

  • min_compress_len – 互換性のための無視されたオプション。

  • namespace – リクエストで使用するオプションの名前空間を指定する文字列。

戻り値

追加された場合は True。エラーの場合は False。

add_multi(mapping, time=0, key_prefix='', min_compress_len=0, namespace=None) ソース

memcache にまだアイテムがない場合は、複数のキーの値を設定します。

パラメータ
  • mapping – 値へのキーの辞書。

  • time – 有効期間で、省略可能です。現在時刻からの相対秒数(最大 1 か月)または Unix エポックタイムからの絶対時刻で指定します。デフォルトではアイテムに期限はありませんが、メモリ不足により強制排除される場合があります。浮動小数点値は整数秒に切り上げられます。

  • key_prefix – すべてのキーの前に付ける接頭辞。

  • min_compress_len – 実装されていない互換性オプション。

  • namespace – リクエストで使用するオプションの名前空間を指定する文字列。

戻り値

memcache にすでに存在しているために設定されていないキーのリスト。すべて成功した場合は、空のリストになります。

add_multi_async(mapping, time=0, key_prefix='', min_compress_len=0, namespace=None, rpc=None) ソース

add_multi() の非同期バージョン – 異なる戻り値に注意してください。

戻り値

_set_multi_async_with_policy() をご覧ください。

cas(key, value, time=0, min_compress_len=0, namespace=None) ソース

compare と set による更新。

これには、キーが以前に gets() または get(…, for_cas=True) で正常に取得されていること、およびその取得以降にキーに変更が加えられていないことが必要です。一般的な使用方法:

key = … client = memcache.Client() value = client.gets(key) # OR client.get(key, for_cas=True) <updated value> ok = client.cas(key, value)

2 つのプロセスが同様のコードを実行すると、cas() を呼び出す最初のプロセスは成功し(ok == True)、2 番目のプロセスは失敗します(ok == False)。これは競合状態を検出するために使用できます。

注: 一部の状態(CAS id)は、gets() で使用された各キーの Client オブジェクトに格納されます。メモリ使用量が増加するのを防ぐには、cas() を使用するときに Client オブジェクトを使用する必要があります。Client オブジェクトの有効期間は、1 つの着信した HTTP リクエストの有効期間に制限する必要があります。グローバル関数ベースの API は使用できません。

パラメータ
  • key – 設定するキー。詳細については、クライアントのドキュメントをご覧ください。

  • value – 新しい値。

  • time – 有効期間で、省略可能です。現在時刻からの相対秒数(最大 1 か月)または Unix エポックタイムからの絶対時刻で指定します。デフォルトではアイテムに期限はありませんが、メモリ不足により強制排除される場合があります。浮動小数点値は整数秒に切り上げられます。

  • min_compress_len – 互換性のための無視されたオプション。

  • namespace – リクエストで使用するオプションの名前空間を指定する文字列。

戻り値

更新された場合は True。RPC エラーの場合、または CAS ID が一致しなかった場合は False。

cas_multi(mapping, time=0, key_prefix='', min_compress_len=0, namespace=None) ソース

compare と set による複数のキーを使った更新。

詳細については、cas() docstring をご覧ください。

パラメータ
  • mapping – 値へのキーの辞書。

  • time – 有効期間で、省略可能です。現在時刻からの相対秒数(最大 1 か月)または Unix エポックタイムからの絶対時刻で指定します。デフォルトではアイテムに期限はありませんが、メモリ不足により強制排除される場合があります。浮動小数点値は整数秒に切り上げられます。

  • key_prefix – すべてのキーの前に付ける接頭辞。

  • min_compress_len – 実装されていない互換性オプション。

  • namespace – リクエストで使用するオプションの名前空間を指定する文字列。

戻り値

比較が失敗したために値が設定されなかったキーのリスト。すべて成功した場合は、空のリストになります。

cas_multi_async(mapping, time=0, key_prefix='', min_compress_len=0, namespace=None, rpc=None)ソース

cas_multi() の非同期バージョン – 異なる戻り値に注意してください。

戻り値

_set_multi_async_with_policy() をご覧ください。

cas_reset() ソース

記憶された CAS ID を消去します。

debuglog() ソース

デバッグ情報のロギング機能。

これは純粋に互換性のためのメソッドです。Google App Engine では何も実行されません。

decr(key, delta=1, namespace=None, initial_value=None) ソース

キーの値をアトミックに減少させます。

内部的には、値は 64 ビットの符号なし整数です。Memcache のキャップがゼロ以下に減少します。

キーを減少させるには、そのキーがキャッシュ内に存在していなければなりません。詳細については、incr() のドキュメントをご覧ください。

パラメータ
  • key – 減少させるキー。反復可能なコレクションの場合、各キーがオフセットされます。詳細については、クライアントの docstring をご覧ください。

  • delta – キーを減少させる、負ではない整数値(int または long)。デフォルトは 1 です。

  • namespace – リクエストで使用するオプションの名前空間を指定する文字列。

  • initial_value – キャッシュに格納する初期値(まだ存在していない場合)。デフォルト値の None では、キャッシュ エントリがまだ存在していない場合でもそのエントリを作成しません。

戻り値

キーが単一の値だった場合は新しい長整数値が返されます。キーがキャッシュにない場合、その他のなんらかの理由で減少できなかった場合、ネットワーク / RPC / サーバーでエラーが発生した場合は None が返されます。

キーが反復可能なコレクションだった場合、指定されたキーを値にマッピングした辞書が返されます。値はこのメソッドの単一の戻り値と同じ意味を持ちます。

発生するエラー
  • ValueError – 数値が負の場合。

  • TypeError – delta が int または long でない場合。

decr_async(key, delta=1, namespace=None, initial_value=None, rpc=None) ソース

decr() の非同期バージョン。

戻り値

UserRPC インスタンス。このインスタンスの get_result() メソッドは、decr() と同じ値を返します。

delete(key, seconds=0, namespace=None) ソース

memcache からキーを削除します。

パラメータ
  • key – 削除するキー。詳細については、クライアントのドキュメントをご覧ください。

  • seconds – 削除されたアイテムを「追加」オペレーションで「ロック」するオプションの秒数。値には、現在時刻からのデルタ(最大 1 か月)または Unix エポックタイムからの絶対時刻を指定できます。デフォルトは 0 で、これは直ちにアイテムが追加されることを意味します。このオプションが設定されているかどうかに関係なく、「設定」オペレーションは常に機能します。浮動小数点値は整数秒に切り上げられます。

  • namespace – リクエストで使用するオプションの名前空間を指定する文字列。

戻り値

ネットワーク障害の場合は DELETE_NETWORK_FAILURE(0)、サーバーでアイテムを削除しようとしたものの対象アイテムが存在しなかった場合は DELETE_ITEM_MISSING(1)、アイテムが実際に削除された場合は DELETE_SUCCESSFUL(2)。これをブール値として使用することができ、この場合、ネットワーク障害が唯一の異常となります。

delete_multi(keys, seconds=0, key_prefix='', namespace=None) ソース

一度に複数のキーを削除します。

パラメータ
  • keys – 削除するキーのリスト。

  • seconds – 削除されたアイテムを「追加」オペレーションで「ロック」するオプションの秒数。値には、現在時刻からのデルタ(最大 1 か月)または Unix エポックタイムからの絶対時刻を指定できます。デフォルトは 0 で、これは直ちにアイテムが追加されることを意味します。このオプションが設定されているかどうかに関係なく、「設定」オペレーションは常に機能します。浮動小数点値は整数秒に切り上げられます。

  • key_prefix – 指定したキーを memcache に送信するときにすべてのキーに追加する接頭辞。get_multi() と set_multi() のドキュメントをご覧ください。

  • namespace – リクエストで使用するオプションの名前空間を指定する文字列。

戻り値

すべてのオペレーションが正常に完了した場合は True。1 つ以上のオペレーションが完了できなかった場合は False。

delete_multi_async(keys, seconds=0, key_prefix='', namespace=None, rpc=None) ソース

delete_multi() の非同期バージョン – 異なる戻り値に注意してください。

戻り値

UserRPC インスタンス。このインスタンスの get_result() メソッドは、ネットワーク エラーがあった場合は None を返し、それ以外の場合はステータス値のリストを返します。各ステータスはキーに対応しており、DELETE_SUCCESSFUL、DELETE_ITEM_MISSING、DELETE_NETWORK_FAILURE のいずれかです(詳細については、delete() docstring を参照)。

disconnect_all() ソース

Memcache サーバーへのすべての接続を閉じます。

これは純粋に互換性のためのメソッドです。Google App Engine では何も実行されません。

flush_all() ソース

memcache 内のすべてを削除します。

戻り値

成功した場合は True、RPC エラーまたはサーバーエラーの場合は False。

flush_all_async(rpc=None) ソース

flush_all() の非同期バージョン。

戻り値

UserRPC インスタンス。このインスタンスの get_result() メソッドは、成功した場合は True、RPC エラーまたはサーバーエラーの場合は False を返します。

forget_dead_hosts() ソース

すべてのサーバーを alive 状態にリセットします。

これは純粋に互換性のためのメソッドです。Google App Engine では何も実行されません。

get(key, namespace=None, for_cas=False) ソース

memcache 内の 1 つのキーを検索します。

ただし、読み込むアイテムが複数ある場合は、代わりに get_multi() を使用します。そのほうが一括オペレーションで読み込むので効率がよく、ネットワーク処理のレイテンシを削減できます。そうしないと、多数のシリアル化された get() オペレーションを実行する必要がある場合があります。

パラメータ
  • key – memcache 内で検索するキー。形式の詳細については、クライアントのドキュメントをご覧ください。

  • namespace – リクエストで使用するオプションの名前空間を指定する文字列。

  • for_cas – True の場合、CAS ID をリクエストしてクライアントに格納します(下記の cas() オペレーションを参照)。

戻り値

キーの値(memcache に存在している場合)、それ以外の場合は None。

get_multi(keys, key_prefix='', namespace=None, for_cas=False) ソース

1 回のオペレーションで memcache にある複数のキーを検索します。

これは一括読み込みを行う場合に推奨される方法です。

パラメータ
  • keys – 検索するキーのリスト。キーは、文字列またはタプル(hash_value、string)です。Google App Engine ではシャーディングとハッシュが自動的に行われますが、ハッシュ値は無視されます。memcache では、キーは一連のバイトであり、特定のエンコーディングは行われません。

  • key_prefix – サーバーとの通信時に、すべてのキーの先頭に付ける接頭辞です。返される辞書には含まれません。

  • namespace – リクエストで使用するオプションの名前空間を指定する文字列。

  • for_cas – True の場合、CAS ID をリクエストしてクライアントに保存します。

戻り値

memcache に存在するキーと値の辞書。key_prefix を指定しても、返される辞書のキーには key_prefix は追加されません。

get_multi_async(keys, key_prefix='', namespace=None, for_cas=False, rpc=None) ソース

get_multi() の非同期バージョン。

戻り値

UserRPC インスタンス。このインスタンスの get_result() メソッドは、ネットワーク エラーが発生した場合は {} を返し、それ以外の場合は get_multi() と同じ dict を返します。

get_stats() ソース

このアプリケーションの memcache 統計情報を取得します。

さまざまな一時的条件により、この統計情報がすべてリセットされる場合があります。統計情報は、呼び出された時点で利用できる最善の情報を提供します。

戻り値

関連する値に統計名をマッピングする辞書。統計の種類と、各統計に関連付けられている意味は次のとおりです。

hits: 結果がキャッシュ ヒットとなったキャッシュ取得リクエスト数。 misses: 結果がキャッシュミスとなったキャッシュ取得リクエスト数。 byte_hits: 取得リクエスト時に転送された総バイト数。オーバーフローのときは

0 にロールオーバーします。

items: キャッシュ内の Key-Value ペアの数。 bytes: キャッシュ内のすべてのアイテムの合計サイズ。 oldest_item_age: キャッシュ内の最も古いアイテムがアクセス

されてからの秒数。これは実質的に、新しいアイテムがアクセスされなくてもキャッシュに残る時間を示します。アイテムが作成されてからの経過時間ではありません。

エラーの場合は None を返します。

get_stats_async(rpc=None) ソース

get_stats() の非同期バージョン。

戻り値

UserRPC インスタンス。このインスタンスの get_result() メソッドは、ネットワーク エラーが発生した場合は {} を返し、それ以外の場合は get_stats() と同じ dict を返します。

gets(key, namespace=None) ソース

get(…, for_cas=True) のエイリアス。

incr(key, delta=1, namespace=None, initial_value=None) ソース

キーの値をアトミックに増加させます。

内部的には、値は 64 ビットの符号なし整数です。memcache では 64 ビットのオーバーフローはチェックされません。大きすぎる値はラップアラウンドされます。

initial_value が指定されていない場合、増加させるキーがキャッシュ内にすでに存在している必要があります。カウンタを初期化するには、initial_value を指定するか、ASCII 10 進整数として初期値に設定します。キーを増加させた後に get() で取得する値は ASCII 10 進数になります。

パラメータ
  • key – 増加させるキー。反復可能なコレクションの場合、各キーがオフセットされます。詳細については、クライアントの docstring をご覧ください。

  • delta – キーを増加させる、負ではない整数値(int または long)。デフォルトは 1 です。

  • namespace – リクエストで使用するオプションの名前空間を指定する文字列。

  • initial_value – キャッシュに格納する初期値(まだ存在していない場合)。デフォルト値の None では、キャッシュ エントリがまだ存在していない場合でもそのエントリを作成しません。

戻り値

キーが単一の値だった場合は新しい長整数値が返されます。キーがキャッシュにない場合やその他のなんらかの理由で増加できなかった場合、ネットワーク / RPC / サーバーでエラーが発生した場合は None が返されます。

キーが反復可能なコレクションだった場合、指定されたキーを値にマッピングした辞書が返されます。値はこのメソッドの単一の戻り値と同じ意味を持ちます。

発生するエラー
  • ValueError – 数値が負の場合。

  • TypeError – delta が int または long でない場合。

incr_async(key, delta=1, namespace=None, initial_value=None, rpc=None) ソース

incr() の非同期バージョン。

戻り値

UserRPC インスタンス。このインスタンスの get_result() メソッドは、incr() と同じ値を返します。

offset_multi(mapping, key_prefix='', namespace=None, initial_value=None) ソース

複数のキーをデルタでオフセットし、一括で増加または減少させる。

パラメータ
  • mapping – 対応する各キーに適用するために、キーをデルタ(正または負の整数)にマッピングする辞書。

  • key_prefix – すべてのキーの前に付ける接頭辞。

  • initial_value – キャッシュに格納する初期値(まだ存在していない場合)。デフォルト値の None では、キャッシュ エントリがまだ存在していない場合でもそのエントリを作成しません。

  • namespace – リクエストで使用するオプションの名前空間を指定する文字列。

戻り値

入力キーを新しい整数値にマッピングする辞書。エラーが発生した場合、キーが存在しない場合、または値が整数型でない場合は、新しい値が None になります。値は 64 ビットの符号なし整数でラップアラウンドされ、アンダーフローは 0 になります。

offset_multi_async(mapping, key_prefix='', namespace=None, initial_value=None, rpc=None) ソース

offset_multi() の非同期バージョン。

戻り値

UserRPC インスタンス。このインスタンスの get_result() メソッドは、offset_multi() と同じ dict を返します。

replace(key, value, time=0, min_compress_len=0, namespace=None) ソース

キーの値を置き換えます。アイテムが memcache に存在しない場合はエラーになります。

パラメータ
  • key – 設定するキー。詳細については、クライアントのドキュメントをご覧ください。

  • value – 設定する値。任意の型。複雑な場合は pickle 化されます。

  • time – 有効期間で、省略可能です。現在時刻からの相対秒数(最大 1 か月)または Unix エポックタイムからの絶対時刻で指定します。デフォルトではアイテムに期限はありませんが、メモリ不足により強制排除される場合があります。浮動小数点値は整数秒に切り上げられます。

  • min_compress_len – 互換性のための無視されたオプション。

  • namespace – リクエストで使用するオプションの名前空間を指定する文字列。

戻り値

置き換えられた場合は True。エラーまたはキャッシュミスの場合は False。

replace_multi(mapping, time=0, key_prefix='', min_compress_len=0, namespace=None) ソース

複数のキーの値を置き換えます。アイテムが memcache にない場合は失敗します。

パラメータ
  • mapping – 値へのキーの辞書。

  • time – 有効期間で、省略可能です。現在時刻からの相対秒数(最大 1 か月)または Unix エポックタイムからの絶対時刻で指定します。デフォルトではアイテムに期限はありませんが、メモリ不足により強制排除される場合があります。浮動小数点値は整数秒に切り上げられます。

  • key_prefix – すべてのキーの前に付ける接頭辞。

  • min_compress_len – 実装されていない互換性オプション。

  • namespace – リクエストで使用するオプションの名前空間を指定する文字列。

戻り値

すでに memcache に存在しているために値が設定されていないキーのリスト。すべて成功した場合は、空のリストになります。

replace_multi_async(mapping, time=0, key_prefix='', min_compress_len=0, namespace=None, rpc=None) ソース

replace_multi() の非同期バージョン – 異なる戻り値に注意してください。

戻り値

_set_multi_async_with_policy() をご覧ください。

set(key, value, time=0, min_compress_len=0, namespace=None) ソース

キャッシュの以前の内容にかかわらず、キーの値を設定します。

add() および replace() とは異なり、このメソッドは以前の内容にかかわらず、常に memcache の値を設定(または上書き)します。

パラメータ
  • key – 設定するキー。詳細については、クライアントのドキュメントをご覧ください。

  • value – 設定する値。任意の型。複雑な場合は pickle 化されます。

  • time – 有効期間で、省略可能です。現在時刻からの相対秒数(最大 1 か月)または Unix エポックタイムからの絶対時刻で指定します。デフォルトではアイテムに期限はありませんが、メモリ不足により強制排除される場合があります。浮動小数点値は整数秒に切り上げられます。

  • min_compress_len – 互換性のための無視されたオプション。

  • namespace – リクエストで使用するオプションの名前空間を指定する文字列。

戻り値

設定された場合は True。エラーの場合は False。

set_multi(mapping, time=0, key_prefix='', min_compress_len=0, namespace=None) ソース

以前の内容にかかわらず、複数のキーの値を一度に設定します。

パラメータ
  • mapping – 値へのキーの辞書。

  • time – 有効期間で、省略可能です。現在時刻からの相対秒数(最大 1 か月)または Unix エポックタイムからの絶対時刻で指定します。デフォルトではアイテムに期限はありませんが、メモリ不足により強制排除される場合があります。浮動小数点値は整数秒に切り上げられます。

  • key_prefix – すべてのキーの前に付ける接頭辞。

  • min_compress_len – 実装されていない互換性オプション。

  • namespace – リクエストで使用するオプションの名前空間を指定する文字列。

戻り値

値が設定されなかったキーのリスト。すべて成功した場合は、空のリストになります。

set_multi_async(mapping, time=0, key_prefix='', min_compress_len=0, namespace=None, rpc=None) ソース

set_multi() の非同期バージョン - 異なる戻り値に注意してください。

戻り値

_set_multi_async_with_policy() をご覧ください。

set_servers(servers) ソース

クライアントが使用する memcache サーバーのプールを設定します。

これは純粋に互換性のためのメソッドです。Google App Engine では何も実行されません。

google.appengine.api.memcache.create_rpc(deadline=None, callback=None) ソース

memcache API で使用する RPC オブジェクトを作成します。

パラメータ
  • deadline - 任意で指定するオペレーションの期限(秒単位)。デフォルトはシステム固有の期限(通常は 5 秒)です。

  • callback - オプションで完了時に呼び出して実行できます。

戻り値

このサービスに特化した apiproxy_stub_map.UserRPC オブジェクト。

google.appengine.api.memcache.setup_client(client_obj) ソース

すべてのモジュール レベルのメソッドに使用する Client オブジェクト インスタンスを設定します。

顧客の persistent_id() または persistent_load() 関数をクライアントに関連付ける場合は、このメソッドを使用します。

注: _async メソッドは関数として公開されていません。あまりにもあいまいであるためです。gets()、cas() および cas_multi() はクライアント オブジェクト上で状態を維持するため、公開されていません。

パラメータ

client_obj – memcache.Client オブジェクトのインスタンス。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Python の App Engine スタンダード環境