PHP Conference Nagoya 2025

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Memcached::OPT_COMPRESSION
Active ou désactive la compression du contenu. Si elle est activée, les éléments qui dépassent une taille (actuellement 200 octets), seront compressés durant le stockage, et décompressés au déstockage, de manière transparente. Le seuil peut être configuré à l'aide du paramètre ini memcached.compression_threshold.

Type : bool, par défaut : true.

Memcached::OPT_COMPRESSION_TYPE
Spécifie l'algorithme de compression à utiliser, si la compression est activée. Les algorithmes valides sont Memcached::COMPRESSION_FASTLZ, Memcached::COMPRESSION_ZLIB et Memcached::COMPRESSION_ZSTD.

Type : int, par défaut : Memcached::COMPRESSION_FASTLZ.

Memcached::COMPRESSION_FASTLZ
L'algorithme de compression FASTLZ.
Memcached::COMPRESSION_ZLIB
L'algorithme de compression ZLIB.
Memcached::COMPRESSION_ZSTD
L'algorithme de compression ZSTD. Disponible à partir de Memcached 3.3.0.
Memcached::OPT_COMPRESSION_LEVEL
Spécifie le niveau de compression à utiliser, si la compression est activée.

Type : int, par défaut : 3.

Memcached::OPT_SERIALIZER
Spécifie la fonction de sérialisation à utiliser pour les valeurs non scalaires. Les fonctions valides sont Memcached::SERIALIZER_PHP, Memcached::SERIALIZER_IGBINARY, Memcached::SERIALIZER_JSON, Memcached::SERIALIZER_JSON_ARRAY et Memcached::SERIALIZER_MSGPACK.

Type : int, par défaut : Memcached::SERIALIZER_IGBINARY si disponible, puis Memcached::SERIALIZER_MSGPACK si disponible, puis Memcached::SERIALIZER_PHP.

Memcached::SERIALIZER_PHP

La fonction de sérialisation par défaut de PHP.

Memcached::SERIALIZER_IGBINARY
Le sérialiseur igbinary. Au lieu d'une représentation textuelle, cette fonction stocke les structures PHP dans un format compact et binaire, avec un gain de temps et d'espace. Ce sérialiseur est pris en charge uniquement si memcached est configuré avec l'option --enable-memcached-igbinary et si l'extension igbinary est chargée.
Memcached::SERIALIZER_JSON

Le sérialiseur JSON. Ce sérialiseur désérialise le JSON en un objet.

Memcached::SERIALIZER_JSON_ARRAY
Le sérialiseur JSON en tableau. Ce sérialiseur désérialise le JSON en un tableau associatif.
Memcached::SERIALIZER_MSGPACK
Le sérialiseur » MessagePack. Ce sérialiseur est pris en charge uniquement si memcached est configuré avec l'option --enable-memcached-msgpack et si l'extension msgpack est chargée.
Memcached::OPT_PREFIX_KEY
Cette option peut être utilisée pour créer un "domaine" pour vos clés. La valeur spécifiée ici sera préfixée à chaque clé. Elle ne peut pas être plus longue que 128 caractères, et réduira d'autant la taille maximale de clé disponible. Le préfixe est appliqué uniquement aux clés d'élément, et non pas aux clés de serveur.

Type : string, par défaut : "".

Memcached::OPT_HASH
Spécifie l'algorithme de hachage utilisé pour les clé. Les valeurs valides sont fournies avec les constantes Memcached::HASH_*. Chaque algorithme de hachage a ses avantages et inconvénients. Utilisez celui qui est donné par défaut, si vous ne comprenez pas, ou que peu vous importe.

Type : int, par défaut : Memcached::HASH_DEFAULT

Memcached::HASH_DEFAULT

L'algorithme par défaut (Jenkins one-at-a-time) de hachage.

Memcached::HASH_MD5

L'algorithme de hachage par MD5

Memcached::HASH_CRC

L'algorithme de hachage par CRC

Memcached::HASH_FNV1_64

L'algorithme de hachage par FNV1_64

Memcached::HASH_FNV1A_64

L'algorithme de hachage par FNV1_64A

Memcached::HASH_FNV1_32

L'algorithme de hachage par FNV1_32

Memcached::HASH_FNV1A_32

L'algorithme de hachage par FNV1_32A

Memcached::HASH_HSIEH

L'algorithme de hachage par Hsieh

Memcached::HASH_MURMUR

L'algorithme de hachage par Murmur

Memcached::OPT_DISTRIBUTION
Spécifie la méthode de distribution des clés sur les serveurs. Actuellement, cette option supporte les modulo et le hachage cohérent. Le hachage cohérent fournit la meilleure distribution, et permet aux serveurs d'être ajouté au groupe avec un minimum de pertes de cache.

Type : int, par défaut : Memcached::DISTRIBUTION_MODULA.

Memcached::DISTRIBUTION_MODULA

L'algorithme de distribution par modulo

Memcached::DISTRIBUTION_CONSISTENT

L'algorithme de distribution par hachage cohérent

Memcached::DISTRIBUTION_VIRTUAL_BUCKET
Algorithme de distribution de clé de hachage Virtual Bucket (également appelé vbucket).
Memcached::OPT_LIBKETAMA_COMPATIBLE

Active ou non la compatibilité avec le comportement type libketama. Quand cette option est activée, l'algorithme de hachage est MD5, et la distribution est le hachage cohérent. Ceci est pratique car d'autres client qui utilisent libketama (Python, Ruby, etc.) avec la même configuration serveur seront capables d'utiliser les mêmes clés, de manière transparente.

Note:

Cette option est hautement recommandée, si vous voulez utiliser le hachage cohérent, et il est probable qu'elle soit activée par défaut dans de futures versions.

Type : bool, par défaut : false.

Memcached::OPT_LIBKETAMA_HASH
Spécifie l'algorithme de hachage pour la mappemon de l'hôte.

Type : int.

Memcached::OPT_TCP_KEEPALIVE
Active le maintien de la connexion TCP (keep-alive).

Type : bool, par défaut : false.

Memcached::OPT_BUFFER_WRITES
Active ou non la bufferisation d'entrée / sortie. La bufferisation fait que les commandes de stockage mettent en buffer, au lieu de faire des envois. Toute action qui lit des données fait que le buffer d'écriture est envoyé au serveur distant. La fermeture de la connexion ou son arrêt vont aussi forcer l'envoi des données du buffer.

Type : bool, par défaut : false.

Memcached::OPT_BINARY_PROTOCOL
Activez cette option pour utiliser le protocole binaire. Notez que vous ne pouvez pas changer cette option pour une connexion déjà ouverte.

Type : bool, par défaut : false.

Memcached::OPT_NO_BLOCK
Active ou non les transferts asynchrones. Ceci est le mode de transfert le plus rapide, pour les fonctions de stockage.

Type : bool, par défaut : false.

Memcached::OPT_NOREPLY
Active ou désactive l'ignoration du résultat des commendes de stockage (set, add, replace, append, prepend, delete, increment, decrement, etc.). Les commendes de stockage seront envoyé sans passer du temps à attendre pour une réponse (il n'y aurait pas de réponse). Les commandes de récupérations tel que Memcached::get() ne sont pas affecté par ce paramètrage.

Type: bool, par défaut: false.

Memcached::OPT_TCP_NODELAY
Active ou non les connexions sans délai des sockets (cela peut être un gain de performances dans certains environnements.

Type: bool, par défaut: false.

Memcached::OPT_SOCKET_SEND_SIZE
La taille maximale du buffer d'envoi par socket, en octets.

Type : int, par défaut : varie en fonction de la configuration de la plateforme/du noyau.

Memcached::OPT_SOCKET_RECV_SIZE
La taille maximale du buffer de réception par socket, en octets.

Type : int, par défaut : varie en fonction de la configuration de la plateforme/du noyau.

Memcached::OPT_CONNECT_TIMEOUT
En mode non-bloquant, cette option configure le délai d'expiration durant la connexion du socket, en millisecondes.

Type: int, par défaut: 1000.

Memcached::OPT_RETRY_TIMEOUT
La durée, en secondes, d'attente avant de tenter à nouveau une connexion qui a échouée.

Type: int, par défaut: 2.

Memcached::OPT_DEAD_TIMEOUT
La durée, en secondes, à attendre avant de réessayer les serveurs morts. 0 signifie aucun réessai.

Type : int, par défaut : 0.

Memcached::OPT_SEND_TIMEOUT
Délai d'expiration d'envoi pour le socket, en microsecondes. Dans les cas où vous utilisez un socket non bloquant, cela vous permettra d'avoir des délais d'expiration en envoi de données, malgré tout.

Type : int, par défaut : 0.

Memcached::OPT_RECV_TIMEOUT
Délai d'expiration de réception pour le socket, en microsecondes. Dans les cas où vous utilisez un socket non bloquant, cela vous permettra d'avoir des délais d'expiration en réception de données, malgré tout.

Type : entier, par défaut : 0.

Memcached::OPT_POLL_TIMEOUT
Délai d'expiration pour le polling de connexions, en millisecondes.

Type : entier, par défaut : 1000.

Memcached::OPT_CACHE_LOOKUPS
Active ou non le cache de DNS.

Type : booléen, par défaut : false.

Memcached::OPT_SERVER_FAILURE_LIMIT
Spécifie la limite du nombre d'échec de connexions. Le serveur sera alors retiré de la liste après autant d'échec de connexions en succession.

Type : entier, par défaut : 5.

Memcached::OPT_SERVER_TIMEOUT_LIMIT
Spécifie la limite de délai d'attente pour les tentatives de connexion au serveur. Le serveur sera supprimé après ce nombre de délais d'attente continus de connexion.

Type : int, par défaut : 0.

Memcached::OPT_AUTO_EJECT_HOSTS

Supprime les serveurs désactivés de la liste. À utiliser avec Memcached::OPT_SERVER_FAILURE_LIMIT et Memcached::OPT_SERVER_TIMEOUT_LIMIT.

Note:

Cette option est remplacée par Memcached::OPT_REMOVE_FAILED_SERVERS.

Type : bool, par défaut : false.

Memcached::OPT_VERIFY_KEY
Active la vérification des clés par memcached.

Type : bool, par défaut : false.

Memcached::OPT_USE_UDP
Utilise UDP au lieu de TCP.

Type : bool, par défaut : false.

Memcached::OPT_NUMBER_OF_REPLICAS
Stocke ce nombre de répliques de chaque élément sur différents serveurs.

Type : int, par défaut : 0.

Memcached::OPT_RANDOMIZE_REPLICA_READS
Randomise le serveur de lecture de réplique.

Type : bool, par défaut : false.

Memcached::OPT_REMOVE_FAILED_SERVERS
Supprime les serveurs désactivés de la liste. À utiliser avec Memcached::OPT_SERVER_FAILURE_LIMIT et Memcached::OPT_SERVER_TIMEOUT_LIMIT.

Type : bool, par défaut : false.

Memcached::HAVE_IGBINARY
Indique si le support de la fonction de sérialisation igbinary est activé.

Type: bool.

Memcached::HAVE_JSON
Indique si la fonction de sérialisation JSON est disponible.

Type: bool.

Memcached::HAVE_MSGPACK
Indique si le support du sérialiseur msgpack est disponible.

Type: bool.

Disponible à partir de Memcached 3.0.0.

Memcached::HAVE_ZSTD
Indique si la prise en charge de la compression ZSTD est disponible.

Type : bool.

Disponible à partir de Memcached 3.3.0.

Memcached::HAVE_ENCODING
Indique si le chiffrement des données via Memcached::setEncodingKey() est pris en charge.

Type : bool.

Disponible à partir de Memcached 3.1.0.

Memcached::HAVE_SESSION

Type: bool.

Disponible à partir de Memcached 3.0.0.

Memcached::HAVE_SASL

Type: bool.

Disponible à partir de Memcached 3.0.0.

Memcached::GET_EXTENDED

Un drapeau pour Memcached::get(), Memcached::getMulti() et Memcached::getMultiByKey() pour s'assurer que les valeurs du jeton CAS sont également renvoyées.

Disponible à partir de Memcached 3.0.0.

Memcached::GET_PRESERVE_ORDER

Une option pour Memcached::getMulti() et Memcached::getMultiByKey() afin de s'assurer que les clés sont retournées dans le même ordre que leur ordre de requête. Les clés inexistantes prennent alors la valeur null

Memcached::RES_SUCCESS

L'opération a réussi.

Memcached::RES_FAILURE

L'opération a échoué, d'une manière ou d'une autre.

Memcached::RES_HOST_LOOKUP_FAILURE

La recherche DNS a échoué.

Memcached::RES_UNKNOWN_READ_FAILURE

Echec de lecture sur le réseau.

Memcached::RES_PROTOCOL_ERROR

Mauvaise commande dans le protocole memcached.

Memcached::RES_CLIENT_ERROR

Erreur du coté du client.

Memcached::RES_SERVER_ERROR

Erreur du coté du serveur.

Memcached::RES_WRITE_FAILURE

Echec de l'écriture sur le réseau.

Memcached::RES_DATA_EXISTS

Echec de la comparaison et échange : l'élément que vous essayez de stocker a été modifié depuis votre dernière lecture.

Memcached::RES_NOTSTORED

L'élément n'a pas été stocké, mais pas à cause d'une erreur. Ceci est normal, et signifie qu'une condition pour un ajout "add" ou un remplacement "replace" n'a pas été satisfait, ou qu'un élément a été mise dans une queue d'effacement.

Memcached::RES_NOTFOUND

L'élément avec cette clé n'a pas été trouvé (avec une opération "get" ou "cas").

Memcached::RES_PARTIAL_READ

Erreur de lecture partielle sur le réseau.

Memcached::RES_SOME_ERRORS

Des erreurs sont survenir durant une lecture multiple.

Memcached::RES_NO_SERVERS

Liste de serveurs vide.

Memcached::RES_END

Fin de jeu de résultats.

Memcached::RES_ERRNO

Erreur système.

Memcached::RES_BUFFERED

L'opération a été bufferisée.

Memcached::RES_TIMEOUT

Le délai d'exécution de l'opération a expiré.

Memcached::RES_BAD_KEY_PROVIDED

Mauvaise clé.

Memcached::RES_STORED
Élément stocké.
Memcached::RES_DELETED
Élément supprimé.
Memcached::RES_STAT
Statistiques.
Memcached::RES_ITEM
Élément.
Memcached::RES_NOT_SUPPORTED
Non pris en charge.
Memcached::RES_FETCH_NOTFINISHED
Récupération non terminée.
Memcached::RES_SERVER_MARKED_DEAD
Serveur marqué comme mort.
Memcached::RES_UNKNOWN_STAT_KEY
Clé de statistique inconnue.
Memcached::RES_INVALID_HOST_PROTOCOL
Protocole d'hôte invalide.
Memcached::RES_MEMORY_ALLOCATION_FAILURE
Échec d'allocation mémoire.
Memcached::RES_CONNECTION_SOCKET_CREATE_FAILURE

Impossible de créer un socket.

Memcached::RES_PAYLOAD_FAILURE

Échec de traitement : impossible de compresser, décompresser ou sérialiser la valeur.

Memcached::RES_AUTH_PROBLEM

Disponible à partir de Memcached 3.0.0.

Memcached::RES_AUTH_FAILURE

Disponible à partir de Memcached 3.0.0.

Memcached::RES_AUTH_CONTINUE

Disponible à partir de Memcached 3.0.0.

Memcached::RES_E2BIG

Disponible à partir de Memcached 3.0.0.

Memcached::RES_KEY_TOO_BIG

Disponible à partir de Memcached 3.0.0.

Memcached::RES_SERVER_TEMPORARILY_DISABLED

Disponible à partir de Memcached 3.0.0.

Memcached::RES_SERVER_MEMORY_ALLOCATION_FAILURE

Disponible à partir de Memcached 3.0.0.

add a note

User Contributed Notes 5 notes

up
10
tyliu2 at gmail dot com
14 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
4
igorsantos07 no gmail
8 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
7 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
13 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
13 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