PHP 8.5.0 Beta 3 available for testing

定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。

Memcached::OPT_COMPRESSION
ペイロードの圧縮を有効または無効にします。 有効にした場合、ある閾値(現状2000バイト)より長いアイテムは、 ストレージ内では圧縮され、取得時に透過的に伸長されます。 閾値は ini 設定 memcached.compression_threshold で調整できます。

型: bool, デフォルト: true

Memcached::OPT_COMPRESSION_TYPE
圧縮を有効にする場合に、利用する圧縮アルゴリズムを指定します。 有効な値は、Memcached::COMPRESSION_FASTLZ, Memcached::COMPRESSION_ZLIB, Memcached::COMPRESSION_ZSTD です。

型: int, デフォルト: Memcached::COMPRESSION_FASTLZ

Memcached::COMPRESSION_FASTLZ
FASTLZ 圧縮アルゴリズム
Memcached::COMPRESSION_ZLIB
ZLIB 圧縮アルゴリズム
Memcached::COMPRESSION_ZSTD
ZSTD 圧縮アルゴリズム Memcached 3.3.0 以降で利用可能です
Memcached::OPT_COMPRESSION_LEVEL
圧縮が有効な場合に、圧縮レベルを指定します。

型: int, デフォルト: 3

Memcached::OPT_SERIALIZER
スカラーでない値をシリアライズする際に使う、シリアライザを指定します。 有効な値は Memcached::SERIALIZER_PHP, Memcached::SERIALIZER_IGBINARY, Memcached::SERIALIZER_JSON, Memcached::SERIALIZER_JSON_ARRAY, Memcached::SERIALIZER_MSGPACK です。

型: int, デフォルト: Memcached::SERIALIZER_IGBINARY が有効な場合は、Memcached::SERIALIZER_IGBINARY。 そうではなく、Memcached::SERIALIZER_MSGPACK が有効な場合は、 Memcached::SERIALIZER_MSGPACK。 いずれも有効でない場合は、 Memcached::SERIALIZER_PHP

Memcached::SERIALIZER_PHP

デフォルトのPHPのシリアライザ

Memcached::SERIALIZER_IGBINARY
igbinary シリアライザです。 PHP のデータ構造を、テキスト表現の代わりにコンパクトなバイナリ表現で保存します。 その結果、保存スペースの節約と処理時間の短縮に繋がります。 このシリアライザは、memcached が --enable-memcached-igbinary オプションを使い、igbinary 拡張モジュールをロードした場合にのみサポートされます。
Memcached::SERIALIZER_JSON

JSON シリアライザ。このシリアライザは、JSON をオブジェクトにアンシリアライズします

Memcached::SERIALIZER_JSON_ARRAY
JSON 配列のシリアライザです。 このシリアライザは、JSON を連想配列としてアンシリアライズします。
Memcached::SERIALIZER_MSGPACK
» MessagePack シリアライザです このシリアライザは、memcached が --enable-memcached-msgpack オプションを使い、msgpack 拡張モジュールをロードした場合にのみサポートされます。
Memcached::OPT_PREFIX_KEY
これを使うと、アイテムのキーに「ドメイン」を作成できます。 ここで指定した値がキーの名前の先頭に付きます。 128 文字より長くはできず、 ここで指定した値の分だけキーに指定できる長さが小さくなります。 プレフィックスが付くのはアイテムのキーだけであり、 サーバーのキーには付きません。

型: string, デフォルト: ""

Memcached::OPT_HASH
アイテムのキーに対するハッシュアルゴリズムを指定します。 有効な値は Memcached::HASH_* 定数にあります。 ハッシュアルゴリズムは、それぞれ利点と欠点があります。 よくわからない、または気にしない場合は、デフォルト値を指定しましょう

型: int, デフォルト: Memcached::HASH_DEFAULT

Memcached::HASH_DEFAULT

The 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
アイテムのキーをサーバーに分散する方法を指定します。 現状サポートされている方法は、Module ベースと、 コンシステント・ハッシュです。 コンシステント・ハッシュの方がデータをうまく分散するので、 最小のキャッシュロスでクラスタにサーバーを追加できます

型: int, デフォルト: Memcached::DISTRIBUTION_MODULA

Memcached::DISTRIBUTION_MODULA

Moduloベースのキー分散アルゴリズム

Memcached::DISTRIBUTION_CONSISTENT

コンシステント・ハッシュ キー分散アルゴリズム(libketama ベース)

Memcached::DISTRIBUTION_VIRTUAL_BUCKET
Virtual Bucket hashing キー分散アルゴリズム(vbucket とも呼びます)
Memcached::OPT_LIBKETAMA_COMPATIBLE

libketama 風の挙動との互換性を有効あるいは無効にします。 有効にすると、アイテムのキーのハッシュアルゴリズムは MD5、 そして分散方式は重み付きコンシステント・ハッシュになります。 これを使うと、他の libketama ベースのクライアント (Python や Ruby など) を同じサーバー設定で使え、キーも透過的にアクセスできるようになるので有用です。

注意:

コンシステント・ハッシュを使う場合は、 このオプションを有効にすることを強く推奨します。 将来のリリースでは、デフォルトでこのオプションは有効になるかもしれません。

型: bool, デフォルト: false

Memcached::OPT_LIBKETAMA_HASH
ホストのマッピングに用いるハッシュアルゴリズムを指定します。

型: int

Memcached::OPT_TCP_KEEPALIVE
TCP の keep alive を有効にします。

型: bool, デフォルト: false

Memcached::OPT_BUFFER_WRITES
バッファ入出力を有効あるいは無効にします。 バッファ入出力を有効にすると、ストレージへのコマンドを送信する代わりに 「バッファ」に向けるようになります。 データを取得するアクションを実行すると、このバッファをリモート接続に送信します。 接続を終了したり閉じたりしたときも、バッファに入ったデータをリモート接続に送信します。

型: bool, デフォルト: false

Memcached::OPT_BINARY_PROTOCOL
バイナリプロトコルを有効にします。 接続を行う際に、このオプションは設定できない点に注意してください。

型: bool, デフォルト: false

Memcached::OPT_NO_BLOCK
非同期 I/O を有効にするか、無効にするかを指定します。 これを有効にすると、storage 関数に最速で転送できます。

型: bool, デフォルト: false

Memcached::OPT_NOREPLY
ストレージへのコマンド (set, add, replace, append, prepend, delete, increment, decrement など) の実行結果を無視するか、しないかを指定します。 ストレージへのコマンドは、送信された後、応答を待つのに時間を使いません。 (応答がない場合もあります) Memcached::get() のように、 データを取得するコマンドは、この設定による影響を受けません。

型: bool, デフォルト: false

Memcached::OPT_TCP_NODELAY
ソケットに接続する際に no-delay 機能を有効にしたり無効にしたりします (環境によっては高速になる場合があります)

型: bool, デフォルト: false

Memcached::OPT_SOCKET_SEND_SIZE
ソケットの送信バッファの最大長をバイト単位で指定します

型: int, デフォルト: platform/kernel の設定によって変わります

Memcached::OPT_SOCKET_RECV_SIZE
ソケットの受信バッファの最大のバイト数

型: int, デフォルト: platform/kernel の設定によって異なります

Memcached::OPT_CONNECT_TIMEOUT
ノンブロッキングモードの際、 ソケット接続のタイムアウトをミリ秒単位で指定します

型: int, デフォルト: 1000

Memcached::OPT_RETRY_TIMEOUT
接続が失敗した場合に、再試行まで待つ時間を秒単位で指定します。

型: int, デフォルト: 2

Memcached::OPT_DEAD_TIMEOUT
死んでいるサーバーに再試行まで待つ時間を秒単位で指定します。 0 は、リトライを行わないということです

型: int, デフォルト: 0

Memcached::OPT_SEND_TIMEOUT
ソケットの送信タイムアウトを、ミリ秒単位で指定します。 ノンブロッキングI/O を使えない場合、 この設定によってデータの送信タイムアウトを利用できます

型: int, デフォルト: 0

Memcached::OPT_RECV_TIMEOUT
ソケットの読み取りタイムアウトを、ミリ秒単位で指定します。 ノンブロッキングI/O を使えない場合、 この設定によってデータの読み取りタイムアウトを利用できます

型: int, デフォルト: 0

Memcached::OPT_POLL_TIMEOUT
接続ポーリングのタイムアウト。ミリ秒単位

型: int, デフォルト: 1000

Memcached::OPT_CACHE_LOOKUPS
DNS lookup のキャッシュを有効にするか、無効にするかを指定します

型: bool, デフォルト: false

Memcached::OPT_SERVER_FAILURE_LIMIT
サーバーへの接続試行が、失敗する回数の上限を指定します。 継続して接続が失敗すると、サーバーはリストから削除されます

型: int, デフォルト: 5

Memcached::OPT_SERVER_TIMEOUT_LIMIT
サーバーへの接続試行のタイムアウト値を指定します。 継続して接続がタイムアウトすると、サーバーはリストから削除されます

型: int, デフォルト: 0

Memcached::OPT_AUTO_EJECT_HOSTS

無効にしたサーバーを一覧から削除します。 Memcached::OPT_SERVER_FAILURE_LIMITMemcached::OPT_SERVER_TIMEOUT_LIMIT と一緒に使います。

注意:

このオプションは、 Memcached::OPT_REMOVE_FAILED_SERVERS に置き換えられました。

型: bool, デフォルト: false

Memcached::OPT_VERIFY_KEY
memcached による、キーの検証を有効にします

型: bool, デフォルト: false

Memcached::OPT_USE_UDP
TCP の代わりに UDP を使います

型: bool, デフォルト: false

Memcached::OPT_NUMBER_OF_REPLICAS
各アイテムについて、ここで指定した数のレプリカを異なるサーバーに保存します

型: int, デフォルト: 0

Memcached::OPT_RANDOMIZE_REPLICA_READS
読み取り専用のレプリカをランダムに選びます

型: bool, デフォルト: false

Memcached::OPT_REMOVE_FAILED_SERVERS
無効にしたサーバーを一覧から削除します。 Memcached::OPT_SERVER_FAILURE_LIMITMemcached::OPT_SERVER_TIMEOUT_LIMIT と一緒に使います。

型: bool, デフォルト: false

Memcached::HAVE_IGBINARY
igbinary シリアライザのサポートを利用可能にするかを指示します

型: bool

Memcached::HAVE_JSON
JSON シリアライザのサポートを利用可能にするかを指示します

型: bool

Memcached::HAVE_MSGPACK
MessagePack シリアライザのサポートを利用可能にするかを指示します

型: bool

Memcached 3.0.0 以降で利用可能です

Memcached::HAVE_ZSTD
ZSTD 圧縮アルゴリズムのサポートを利用可能にするかを指示します

型: bool.

Memcached 3.3.0 以降で利用可能です

Memcached::HAVE_ENCODING
Memcached::setEncodingKey() を使って、データの暗号化をサポートするかどうかを指示します

型: bool.

Memcached 3.1.0 以降で利用可能です

Memcached::HAVE_SESSION

型: bool

Memcached 3.0.0 以降で利用可能です

Memcached::HAVE_SASL

型: bool.

Memcached 3.0.0 以降で利用可能です

Memcached::GET_EXTENDED

Memcached::get(), Memcached::getMulti(), Memcached::getMultiByKey() の返り値に、 CAS トークン値も一緒に含めることを保証するフラグ

Memcached 3.0.0 以降で利用可能です

Memcached::GET_PRESERVE_ORDER

Memcached::getMulti()Memcached::getMultiByKey() の返り値が、 キーがリクエストされた順に返されることを保証するフラグ。 キーが存在しない場合、デフォルト値 null を取得します。

Memcached::RES_SUCCESS

操作は成功しました

Memcached::RES_FAILURE

何らかの形で操作が失敗しました

Memcached::RES_HOST_LOOKUP_FAILURE

DNS lookup が失敗しました

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

compare-and-swap(CAS) に失敗しました: 保存しようとしたアイテムが、 最後に取得する前に変更されたということです

Memcached::RES_NOTSTORED

アイテムが格納されなかったが、その原因はエラーではありません。 これは通常、"add" や "replace" コマンドの要件を満たさなかったか あるいはアイテムが削除キューに入っていることを意味します

Memcached::RES_NOTFOUND

このキーのアイテムが ("get" や "cas" の操作で) 見つかりませんでした

Memcached::RES_PARTIAL_READ

ネットワークデータの読み取りに、一部失敗しました

Memcached::RES_SOME_ERRORS

複数 get している間にエラーが発生しました

Memcached::RES_NO_SERVERS

サーバーリストが空です

Memcached::RES_END

結果セットの終端です

Memcached::RES_ERRNO

システムエラー

Memcached::RES_BUFFERED

操作がバッファリングされました

Memcached::RES_TIMEOUT

操作がタイムアウトしました

Memcached::RES_BAD_KEY_PROVIDED

無効なキー

Memcached::RES_STORED
アイテムが保存されました
Memcached::RES_DELETED
アイテムが削除されました
Memcached::RES_STAT
統計情報
Memcached::RES_ITEM
アイテム
Memcached::RES_NOT_SUPPORTED
サポートされていません
Memcached::RES_FETCH_NOTFINISHED
情報の取得が終わりませんでした
Memcached::RES_SERVER_MARKED_DEAD
サーバーが死んだとマークされました
Memcached::RES_UNKNOWN_STAT_KEY
不明な stat key です
Memcached::RES_INVALID_HOST_PROTOCOL
無効なホストプロトコルです
Memcached::RES_MEMORY_ALLOCATION_FAILURE
メモリの確保に失敗しました
Memcached::RES_CONNECTION_SOCKET_CREATE_FAILURE

ネットワークソケットの作成に失敗しました

Memcached::RES_PAYLOAD_FAILURE

ペイロードに関するエラー: つまり、値を シリアライズ/復元 したり、圧縮/解凍 することができなかった ことを示します

Memcached::RES_AUTH_PROBLEM

Memcached 3.0.0 以降で利用可能です

Memcached::RES_AUTH_FAILURE

Memcached 3.0.0 以降で利用可能です

Memcached::RES_AUTH_CONTINUE

Memcached 3.0.0 以降で利用可能です

Memcached::RES_E2BIG

Memcached 3.0.0 以降で利用可能です

Memcached::RES_KEY_TOO_BIG

Memcached 3.0.0 以降で利用可能です

Memcached::RES_SERVER_TEMPORARILY_DISABLED

Memcached 3.0.0 以降で利用可能です

Memcached::RES_SERVER_MEMORY_ALLOCATION_FAILURE

Memcached 3.0.0 以降で利用可能です

add a note

User Contributed Notes 5 notes

up
10
tyliu2 at gmail dot com
15 years ago
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
up
5
igorsantos07 no gmail
9 years ago
As per a StackOverflow answer (http://stackoverflow.com/a/9042985/102960, by @rid), this is the current list of Memcached Response constants:

00 = MEMCACHED_SUCCESS
01 = MEMCACHED_FAILURE
02 = MEMCACHED_HOST_LOOKUP_FAILURE // getaddrinfo() and getnameinfo() only
03 = MEMCACHED_CONNECTION_FAILURE
04 = MEMCACHED_CONNECTION_BIND_FAILURE // DEPRECATED see MEMCACHED_HOST_LOOKUP_FAILURE
05 = MEMCACHED_WRITE_FAILURE
06 = MEMCACHED_READ_FAILURE
07 = MEMCACHED_UNKNOWN_READ_FAILURE
08 = MEMCACHED_PROTOCOL_ERROR
09 = MEMCACHED_CLIENT_ERROR
10 = MEMCACHED_SERVER_ERROR // Server returns "SERVER_ERROR"
11 = MEMCACHED_ERROR // Server returns "ERROR"
12 = MEMCACHED_DATA_EXISTS
13 = MEMCACHED_DATA_DOES_NOT_EXIST
14 = MEMCACHED_NOTSTORED
15 = MEMCACHED_STORED
16 = MEMCACHED_NOTFOUND
17 = MEMCACHED_MEMORY_ALLOCATION_FAILURE
18 = MEMCACHED_PARTIAL_READ
19 = MEMCACHED_SOME_ERRORS
20 = MEMCACHED_NO_SERVERS
21 = MEMCACHED_END
22 = MEMCACHED_DELETED
23 = MEMCACHED_VALUE
24 = MEMCACHED_STAT
25 = MEMCACHED_ITEM
26 = MEMCACHED_ERRNO
27 = MEMCACHED_FAIL_UNIX_SOCKET // DEPRECATED
28 = MEMCACHED_NOT_SUPPORTED
29 = MEMCACHED_NO_KEY_PROVIDED /* Deprecated. Use MEMCACHED_BAD_KEY_PROVIDED! */
30 = MEMCACHED_FETCH_NOTFINISHED
31 = MEMCACHED_TIMEOUT
32 = MEMCACHED_BUFFERED
33 = MEMCACHED_BAD_KEY_PROVIDED
34 = MEMCACHED_INVALID_HOST_PROTOCOL
35 = MEMCACHED_SERVER_MARKED_DEAD
36 = MEMCACHED_UNKNOWN_STAT_KEY
37 = MEMCACHED_E2BIG
38 = MEMCACHED_INVALID_ARGUMENTS
39 = MEMCACHED_KEY_TOO_BIG
40 = MEMCACHED_AUTH_PROBLEM
41 = MEMCACHED_AUTH_FAILURE
42 = MEMCACHED_AUTH_CONTINUE
43 = MEMCACHED_PARSE_ERROR
44 = MEMCACHED_PARSE_USER_ERROR
45 = MEMCACHED_DEPRECATED
46 = MEMCACHED_IN_PROGRESS
47 = MEMCACHED_SERVER_TEMPORARILY_DISABLED
48 = MEMCACHED_SERVER_MEMORY_ALLOCATION_FAILURE
49 = MEMCACHED_MAXIMUM_RETURN /* Always add new error code before */
11 = MEMCACHED_CONNECTION_SOCKET_CREATE_FAILURE = MEMCACHED_ERROR
up
1
Anonymous
8 years ago
Note that with Memcached::OPT_BINARY_PROTOCOL enabled there is some (possibly significant) size overhead added at the TCP level.

If you have a high volume of small values being get/set, you should analyze the effect of this option on your overall traffic size with a network tool (e.g. tcpdump) before enabling it, especially if you pay for traffic in/out of your memcache instance.
up
1
akenney at onesite dot com
14 years ago
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.
up
0
Allen Tsai
14 years ago
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.
To Top