RES_SUCCESS = 0
RES_FAILURE = 1
RES_HOST_LOOKUP_FAILURE = 2
RES_UNKNOWN_READ_FAILURE = 7
RES_PROTOCOL_ERROR = 8
RES_CLIENT_ERROR = 9
RES_SERVER_ERROR = 10
RES_WRITE_FAILURE = 5
RES_DATA_EXISTS = 12
RES_NOTSTORED = 14
RES_NOTFOUND = 16
RES_PARTIAL_READ = 18
RES_SOME_ERRORS = 19
RES_NO_SERVERS = 20
RES_END = 21
RES_ERRNO = 26
RES_BUFFERED = 32
RES_TIMEOUT = 31
RES_BAD_KEY_PROVIDED = 33
RES_CONNECTION_SOCKET_CREATE_FAILURE = 11
RES_PAYLOAD_FAILURE = -1001
定義済み定数
以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。
-
Memcached::OPT_COMPRESSION -
ペイロードの圧縮を有効あるいは無効にします。有効にすると、 有効にすると、一定の閾値 (現在は 100 バイト) を超える長さのアイテムは 格納時に圧縮され、取得時に伸長されます。この操作は透過的に行われます。
型: boolean、デフォルト:
TRUE -
Memcached::OPT_SERIALIZER -
非スカラ値のシリアライズに使うシリアライザを指定します。 有効なシリアライザは
Memcached::SERIALIZER_PHPあるいはMemcached::SERIALIZER_IGBINARYです。 後者のシリアライザをサポートするのは memcached の configure 時に --enable-memcached-igbinary オプションを指定して igbinary 拡張を読み込んだときだけです。型: integer、デフォルト:
Memcached::SERIALIZER_PHP -
Memcached::SERIALIZER_PHP -
デフォルトの PHP シリアライザ。
-
Memcached::SERIALIZER_IGBINARY -
» igbinary シリアライザ。 テキスト表現ではなく、PHP のデータ構造をコンパクトなバイナリ形式で格納します。 その結果、容量と時間を節約できます。
-
Memcached::SERIALIZER_JSON -
JSON シリアライザ。PHP 5.2.10 以降が必要です。
-
Memcached::OPT_PREFIX_KEY -
これを使うと、アイテムのキーに「ドメイン」を作成できます。 ここで指定した値がキーの名前の先頭に付きます。 128 文字より長くはできず、 ここで指定した値の分だけキーに指定できる長さが小さくなります。 プレフィックスが付くのはアイテムのキーだけであり、 サーバーのキーには付きません。
型: string、デフォルト: ""
-
Memcached::OPT_HASH -
アイテムのキーに使うハッシュアルゴリズムを指定します。 有効な値は、定数
Memcached::HASH_*のいずれかです。 どのハッシュアルゴリズムにもそれぞれ利点や欠点があります。 よくわからない場合やあまり難しく考えたくない場合はデフォルトで進めましょう。型: integer、デフォルト:
Memcached::HASH_DEFAULT -
Memcached::HASH_DEFAULT -
デフォルトのハッシュアルゴリズム (Jenkins one-at-a-time)。
-
Memcached::HASH_MD5 -
MD5 ハッシュアルゴリズム。
-
Memcached::HASH_CRC -
CRC ハッシュアルゴリズム。
-
Memcached::HASH_FNV1_64 -
FNV1_64 ハッシュアルゴリズム。
-
Memcached::HASH_FNV1A_64 -
FNV1_64A ハッシュアルゴリズム。
-
Memcached::HASH_FNV1_32 -
FNV1_32 ハッシュアルゴリズム。
-
Memcached::HASH_FNV1A_32 -
FNV1_32A ハッシュアルゴリズム。
-
Memcached::HASH_HSIEH -
Hsieh ハッシュアルゴリズム。
-
Memcached::HASH_MURMUR -
Murmur ハッシュアルゴリズム。
-
Memcached::OPT_DISTRIBUTION -
アイテムのキーをサーバーに振り分ける方式を指定します。 現在サポートしている方式は、モジュロとコンシステント・ハッシュの二種類です。 コンシステント・ハッシュのほうがよりうまく分散させられ、 サーバーをクラスタに追加するときにもキャッシュのロスを最小限に抑えられます。
型: integer、デフォルト:
Memcached::DISTRIBUTION_MODULA -
Memcached::DISTRIBUTION_MODULA -
モジュロベースのキー分散アルゴリズム。
-
Memcached::DISTRIBUTION_CONSISTENT -
コンシステント・ハッシュを使ったキー分散アルゴリズム (libketama を利用)。
-
Memcached::OPT_LIBKETAMA_COMPATIBLE -
libketama 風の挙動との互換性を有効あるいは無効にします。 有効にすると、アイテムのキーのハッシュアルゴリズムは MD5、 そして分散方式は重み付きコンシステント・ハッシュになります。 これを使うと、他の libketama ベースのクライアント (Python や Ruby など) を同じサーバー設定で使え、キーも透過的にアクセスできるようになるので有用です。
注意:
コンシステント・ハッシュを使うときは、このオプションを有効にしておくことを強く推奨します。 将来のリリースでは、これはデフォルトで有効になる予定です。
型: boolean、デフォルト:
FALSE -
Memcached::OPT_BUFFER_WRITES -
バッファ入出力を有効あるいは無効にします。 バッファ入出力を有効にすると、ストレージへのコマンドを送信する代わりに 「バッファ」に向けるようになります。 データを取得するアクションを実行すると、このバッファをリモート接続に送信します。 接続を終了したり閉じたりしたときも、バッファに入ったデータをリモート接続に送信します。
型: boolean、デフォルト:
FALSE -
Memcached::OPT_BINARY_PROTOCOL -
バイナリプロトコルを使えるようにします。 既に開いている接続ではこのオプションを切り替えられないことに注意しましょう。
型: boolean、デフォルト:
FALSE -
Memcached::OPT_NO_BLOCK -
非同期入出力を有効あるいは無効にします。 これは、ストレージ関数で使える転送の中でも最も高速なものです。
型: boolean、デフォルト:
FALSE -
Memcached::OPT_TCP_NODELAY -
ソケット接続用のno-delay機能 (環境によってはそのほうが高速化する) を有効あるいは無効にします。
型: boolean、デフォルト:
FALSE -
Memcached::OPT_SOCKET_SEND_SIZE -
バッファに送信するソケットの最大のバイト数。
型: integer、デフォルト: プラットフォームやカーネルの設定によって異なる
-
Memcached::OPT_SOCKET_RECV_SIZE -
ソケットの受信バッファの最大のバイト数。
The maximum socket receive buffer in bytes.
型: integer、デフォルト: プラットフォームやカーネルの設定によって異なる
-
Memcached::OPT_CONNECT_TIMEOUT -
非ブロックモードの場合、ここにはソケット接続のタイムアウト値をミリ秒単位で指定します。
型: integer、デフォルト: 1000
-
Memcached::OPT_RETRY_TIMEOUT -
接続に失敗したときに、どれだけ失敗するまで接続を再試行するかどうかを、秒数で表す。
型: integer、デフォルト: 0
-
Memcached::OPT_SEND_TIMEOUT -
ソケットの送信タイムアウトをマイクロ秒で指定します。 非ブロックモードの入出力を使えない場合でも、 これを使ってデータ送信のタイムアウトを指定できます。
型: integer、デフォルト: 0
-
Memcached::OPT_RECV_TIMEOUT -
ソケットの読み込みタイムアウトをマイクロ秒で指定します。 非ブロックモードの入出力を使えない場合でも、 これを使ってデータ読み込みのタイムアウトを指定できます。
型: integer、デフォルト: 0
-
Memcached::OPT_POLL_TIMEOUT -
接続をポーリングする際のタイムアウト時間をミリ秒単位で指定します。
型: integer、デフォルト: 1000
-
Memcached::OPT_CACHE_LOOKUPS -
DNS ルックアップのキャッシュを有効あるいは無効にします。
型: boolean、デフォルト:
FALSE -
Memcached::OPT_SERVER_FAILURE_LIMIT -
サーバーへの接続の最大試行回数を指定します。 指定した回数だけ接続の失敗が続くと、サーバーが削除されます。
型: integer、デフォルト: 0
-
Memcached::HAVE_IGBINARY -
igbqinary シリアライザのサポートが有効かどうかを示します。
型: boolean
-
Memcached::HAVE_JSON -
JSON シリアライザのサポートが有効かどうかを示します。
型: boolean
-
Memcached::GET_PRESERVE_ORDER -
Memcached::getMulti() や Memcached::getMultiByKey() のフラグで、 リクエストしたときと同じ順番でキーを返すことを示します。 存在しないキーを指定すると、デフォルト値の NULL を返します。
-
Memcached::RES_SUCCESS -
実行しようとした操作が成功したことを示します。
-
Memcached::RES_FAILURE -
実行しようとした操作が何らかの点で失敗したことを示します。
-
Memcached::RES_HOST_LOOKUP_FAILURE -
DNSの名前解決が失敗したことを示します。
-
Memcached::RES_UNKNOWN_READ_FAILURE -
ネットワーク経由でのデータの読み取りに失敗したことを示します。
-
Memcached::RES_PROTOCOL_ERROR -
memcached プロトコル内で不正なコマンドが実行されたことを示します。
-
Memcached::RES_CLIENT_ERROR -
クライアント側でエラーが起きたことを示します。
-
Memcached::RES_SERVER_ERROR -
サーバー側でエラーが起きたことを示します。
-
Memcached::RES_WRITE_FAILURE -
ネットワーク経由でのデータの書き込みに失敗したことを示します。
-
Memcached::RES_DATA_EXISTS -
比較と交換に失敗したことを示します。格納しようとしたアイテムは、 最後に取得したあとで変更されています。
-
Memcached::RES_NOTSTORED -
アイテムが格納されなかったが、その原因はエラーではないということを示します。 これは通常、"add" や "replace" コマンドの要件を満たさなかったか あるいはアイテムが削除キューに入っていることを意味します。
-
Memcached::RES_NOTFOUND -
このキーのアイテムが ("get" や "cas" の操作で) 見つからなかったことを示します。
-
Memcached::RES_PARTIAL_READ -
ネットワーク経由でのデータの読み取りが一部失敗したことを示します。
-
Memcached::RES_SOME_ERRORS -
multi-get を実行中にエラーが発生したことを示します。
-
Memcached::RES_NO_SERVERS -
サーバーリストが空であることを示します。
-
Memcached::RES_END -
結果セットの末尾を示します。
-
Memcached::RES_ERRNO -
システムエラーを示します。
-
Memcached::RES_BUFFERED -
実行している操作がバッファリングされていることを示します。
-
Memcached::RES_TIMEOUT -
実行がタイムアウトしたことを示します。
-
Memcached::RES_BAD_KEY_PROVIDED -
不正なキーを与えたことを示します。
-
Memcached::RES_CONNECTION_SOCKET_CREATE_FAILURE -
ネットワークソケットの作成が失敗したことを示します。
-
Memcached::RES_PAYLOAD_FAILURE -
ペイロードに関するエラー: つまり、値を シリアライズ/復元 したり、圧縮/解凍 することができなかったことを示します。
Memcached::OPT_SERVER_FAILURE_LIMIT - once a server has hit this limit, the client's getResultMessage() will return "SERVER IS MARKED DEAD." Further gets() for keys hashing to this server will continue returning this message, as will sets() hashing to the dead server.
Version 2.0.01b supports a constant Memcached::OPT_AUTO_EJECT_HOSTS which allows automatic rebalancing of the cluster/automatic failover handling.
Apparently there is a bug in libmemcached where connect timeout does not work when OPT_NO_BLOCK is set as well.
The bug and related blocking bugs are discussed here:
https://bugs.launchpad.net/libmemcached/+bug/583031
We confirmed this in libmemcached version 0.43
Be sure to test some memcache servers in your pool being unavailable (no route to host and memcache service down) to ensure that timeout settings are working correctly.
