PHP Conference Nagoya 2025

Constantes predefinidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

Memcached::OPT_COMPRESSION
Ativa ou desativa a compactação de dados. Quando ativada, os valores de itens maiores que um determinado limite (atualmente 2000 bytes) serão compactados durante o armazenamento e descompactados durante a recuperação de forma transparente. O limite pode ser configurado usando a configuração memcached.compression_threshold do arquivo INI.

Tipo: bool, padrão: true.

Memcached::OPT_COMPRESSION_TYPE
Especifica o algoritmo de compactação a ser usado, se a compactação estiver habilitada. Os algoritmos válidos são Memcached::COMPRESSION_FASTLZ, Memcached::COMPRESSION_ZLIB e Memcached::COMPRESSION_ZSTD.

Tipo: int, padrão: Memcached::COMPRESSION_FASTLZ.

Memcached::COMPRESSION_FASTLZ
O algoritmo de compressão FASTLZ.
Memcached::COMPRESSION_ZLIB
O algoritmo de compressão ZLIB.
Memcached::COMPRESSION_ZSTD
O algoritmo de compressão ZSTD. Disponível a partir do Memcached 3.3.0.
Memcached::OPT_COMPRESSION_LEVEL
Especifica o nível de compactação a ser usado, se a compactação estiver habilitada.

Tipo: int, padrão: 3.

Memcached::OPT_SERIALIZER
Especifica o serializador a ser usado para serializar valores não escalares. Os serializadores válidos são Memcached::SERIALIZER_PHP, Memcached::SERIALIZER_IGBINARY, Memcached::SERIALIZER_JSON, Memcached::SERIALIZER_JSON_ARRAY e Memcached::SERIALIZER_MSGPACK.

Tipo: int, padrão: Memcached::SERIALIZER_IGBINARY se disponível, depois Memcached::SERIALIZER_MSGPACK se disponível e depois Memcached::SERIALIZER_PHP.

Memcached::SERIALIZER_PHP

O serializador PHP padrão.

Memcached::SERIALIZER_IGBINARY
O serializador igbinary. Em vez de representação textual, ele armazena estruturas de dados PHP em um formato binário compacto, resultando em ganhos de espaço e tempo. Este serializador é suportado somente se o memcached estiver configurado com a opção --enable-memcached-igbinary e a extensão igbinary estiver carregada.
Memcached::SERIALIZER_JSON

O serializador JSON. Este serializador desserializa de JSON para um objeto.

Memcached::SERIALIZER_JSON_ARRAY
O serializador de array JSON. Este serializador desserializa de JSON para um array associativo.
Memcached::SERIALIZER_MSGPACK
O serializador » MessagePack. Este serializador é suportado somente se o memcached estiver configurado com a opção --enable-memcached-msgpack e a extensão msgpack estiver carregada.
Memcached::OPT_PREFIX_KEY
Isso pode ser usado para criar um "domínio" para as chaves de item. O valor especificado aqui será prefixado para cada uma das chaves. Não pode ter mais de 128 caracteres e reduzirá o tamanho máximo de chave disponível. O prefixo é aplicado apenas às chaves do item, não às chaves do servidor.

Tipo: string, padrão: "".

Memcached::OPT_HASH
Especifica o algoritmo de hash usado para as chaves do item. Os valores válidos são fornecidos por meio das constantes Memcached::HASH_*. Cada algoritmo de hash tem suas vantagens e desvantagens. Use o padrão se o algoritmo não for conhecido ou se não tiver importância.

Tipo: int, padrão: Memcached::HASH_DEFAULT

Memcached::HASH_DEFAULT

O algoritmo de hash de chave de item padrão (Jenkins one-at-a-time).

Memcached::HASH_MD5

Algoritmo de hash de chave de item MD5.

Memcached::HASH_CRC

Algoritmo de hash de chave de item CRC.

Memcached::HASH_FNV1_64

Algoritmo de hash de chave de item FNV1_64.

Memcached::HASH_FNV1A_64

Algoritmo de hash de chave de item FNV1_64A.

Memcached::HASH_FNV1_32

Algoritmo de hash de chave de item FNV1_32.

Memcached::HASH_FNV1A_32

Algoritmo de hash de chave de item FNV1_32A.

Memcached::HASH_HSIEH

Algoritmo de hash de chave de item Hsieh.

Memcached::HASH_MURMUR

Algoritmo de hash de chave de item de Murmur.

Memcached::OPT_DISTRIBUTION
Especifica o método de distribuição de chaves de itens para os servidores. Os métodos atualmente suportados são módulo e hashing consistente. O hash consistente oferece melhor distribuição e permite que os servidores sejam adicionados ao cluster com perdas mínimas de cache.

Tipo: int, padrão: Memcached::DISTRIBUTION_MODULA.

Memcached::DISTRIBUTION_MODULA

Algoritmo de distribuição de chaves baseado em módulo.

Memcached::DISTRIBUTION_CONSISTENT

Algoritmo consistente de distribuição de chaves de hash (baseado em libketama).

Memcached::DISTRIBUTION_VIRTUAL_BUCKET
Algoritmo de distribuição de chave de hash do Virtual Bucket (também chamado de vbucket).
Memcached::OPT_LIBKETAMA_COMPATIBLE

Ativa ou desativa a compatibilidade com comportamento semelhante ao libketama. Quando ativado, o algoritmo de hash da chave do item é definido como MD5 e a distribuição é definida para ser uma distribuição de hash consistente ponderada. Isso é útil porque outros clientes baseados em libketama (Python, Ruby, etc.) com a mesma configuração de servidor poderão acessar as chaves de forma transparente.

Nota:

É altamente recomendável ativar esta opção se você deseja usar hashing consistente e pode ser ativado por padrão em versões futuras.

Tipo: bool, padrão: false.

Memcached::OPT_LIBKETAMA_HASH
Especifica o algoritmo de hash para mapeamento de host.

Tipo: int.

Memcached::OPT_TCP_KEEPALIVE
Permite que o TCP continue ativo.

Tipo: bool, padrão: false.

Memcached::OPT_BUFFER_WRITES
Ativa ou desativa a E/S em buffer. Habilitar a E/S em buffer faz com que os comandos de armazenamento sejam "armazenados" em vez de serem enviados. Qualquer ação que recupera dados faz com que esse buffer seja enviado para a conexão remota. Sair da conexão ou encerrar a conexão também fará com que os dados armazenados em buffer sejam enviados para a conexão remota.

Tipo: bool, padrão: false.

Memcached::OPT_BINARY_PROTOCOL
Habilita o uso do protocolo binário. Observe que não se pode alternar esta opção em uma conexão aberta.

Tipo: bool, padrão: false.

Memcached::OPT_NO_BLOCK
Ativa ou desativa a E/S assíncrona. Este é o transporte mais rápido disponível para funções de armazenamento.

Tipo: bool, padrão: false.

Memcached::OPT_NOREPLY
Habilita ou desabilita ignorar o resultado dos comandos de armazenamento (set, add, replace, append, prepend, delete, increment, decrement, etc.). Comandos de armazenamento serão enviados sem perder tempo esperando por uma resposta (não haveria resposta). Comandos de recuperação como Memcached::get() não são afetados por esta configuração.

Tipo: bool, padrão: false.

Memcached::OPT_TCP_NODELAY
Ativa ou desativa o recurso sem atraso para conectar sockets (pode ser mais rápido em alguns ambientes).

Tipo: bool, padrão: false.

Memcached::OPT_SOCKET_SEND_SIZE
O buffer máximo de envio de socket em bytes.

Tipo: int, padrão: varia de acordo com a plataforma/kernel configuração.

Memcached::OPT_SOCKET_RECV_SIZE
O buffer máximo de recebimento de socket em bytes.

Tipo: int, padrão: varia de acordo com a plataforma/kernel configuração.

Memcached::OPT_CONNECT_TIMEOUT
No modo não bloqueante, define o valor do limite de tempo durante a conexão do socket, em milissegundos.

Tipo: int, padrão: 1000.

Memcached::OPT_RETRY_TIMEOUT
A quantidade de tempo, em segundos, para aguardar até tentar novamente uma tentativa de conexão com falha.

Tipo: int, padrão: 2.

Memcached::OPT_DEAD_TIMEOUT
A quantidade de tempo, em segundos, de espera até a nova tentativa de servidores inativos. 0 significa que não há nova tentativa.

Tipo: int, padrão: 0.

Memcached::OPT_SEND_TIMEOUT
Tempo limite de envio do socket, em microssegundos. Nos casos em que não seja possível usar E/S não bloqueante, isso permitirá que haja limites de tempo no envio de dados.

Tipo: int, padrão: 0.

Memcached::OPT_RECV_TIMEOUT
Tempo limite de leitura do Socket, em microssegundos. Nos casos em que não seja possível usar E/S não bloqueante, isso permitirá que haja limites de tempo na leitura de dados.

Tipo: int, padrão: 0.

Memcached::OPT_POLL_TIMEOUT
Tempo limite para polling de conexão, em milissegundos.

Tipo: int, padrão: 1000.

Memcached::OPT_CACHE_LOOKUPS
Ativa ou desativa o cache de pesquisas de DNS.

Tipo: bool, padrão: false.

Memcached::OPT_SERVER_FAILURE_LIMIT
Especifica o limite de falha para tentativas de conexão do servidor. O servidor será removido após tantas falhas contínuas de conexão.

Tipo: int, padrão: 5.

Memcached::OPT_SERVER_TIMEOUT_LIMIT
Especifica o limite de tempo limite para tentativas de conexão do servidor. O servidor será removido após este número de expirações contínuas de limite de tempo de conexão.

Tipo: int, padrão: 0.

Memcached::OPT_AUTO_EJECT_HOSTS

Remove servidores desabilitados da lista. Usar junto com Memcached::OPT_SERVER_FAILURE_LIMIT e Memcached::OPT_SERVER_TIMEOUT_LIMIT.

Nota:

Esta opção é substituída por Memcached::OPT_REMOVE_FAILED_SERVERS.

Tipo: bool, padrão: false.

Memcached::OPT_VERIFY_KEY
Permite a verificação de chaves pelo memcached.

Tipo: bool, padrão: false.

Memcached::OPT_USE_UDP
Usa UDP em vez de TCP.

Tipo: bool, padrão: false.

Memcached::OPT_NUMBER_OF_REPLICAS
Armazena tantas réplicas de cada item em servidores diferentes.

Tipo: int, padrão: 0.

Memcached::OPT_RANDOMIZE_REPLICA_READS
Randomiza o servidor de leitura de réplica.

Tipo: bool, padrão: false.

Memcached::OPT_REMOVE_FAILED_SERVERS
Remove servidores desabilitados da lista. Usar junto com Memcached::OPT_SERVER_FAILURE_LIMIT e Memcached::OPT_SERVER_TIMEOUT_LIMIT.

Tipo: bool, padrão: false.

Memcached::HAVE_IGBINARY
Indica se o suporte ao serializador igbinary está disponível.

Tipo: bool.

Memcached::HAVE_JSON
Indica se o suporte ao serializador JSON está disponível.

Tipo: bool.

Memcached::HAVE_MSGPACK
Indica se o suporte ao serializador msgpack está disponível.

Tipo: bool.

Disponível a partir do Memcached 3.0.0.

Memcached::HAVE_ZSTD
Indica se o suporte à compactação ZSTD está disponível.

Tipo: bool.

Disponível a partir do Memcached 3.3.0.

Memcached::HAVE_ENCODING
Indica se a criptografia de dados usando Memcached::setEncodingKey() é suportada.

Tipo: bool.

Disponível a partir do Memcached 3.1.0.

Memcached::HAVE_SESSION

Tipo: bool.

Disponível a partir do Memcached 3.0.0.

Memcached::HAVE_SASL

Tipo: bool.

Disponível a partir do Memcached 3.0.0.

Memcached::GET_EXTENDED

Uma opção para Memcached::get(), Memcached::getMulti() e Memcached::getMultiByKey() para garantir que os valores de token CAS também sejam retornados.

Disponível a partir do Memcached 3.0.0.

Memcached::GET_PRESERVE_ORDER

Uma opção para Memcached::getMulti() e Memcached::getMultiByKey() para garantir que as chaves sejam retornadas na mesma ordem em que foram solicitadas. Chaves não existentes obtêm um valor padrão de null.

Memcached::RES_SUCCESS

A operação foi bem-sucedida.

Memcached::RES_FAILURE

A operação falhou de alguma forma.

Memcached::RES_HOST_LOOKUP_FAILURE

Falha na pesquisa de DNS.

Memcached::RES_UNKNOWN_READ_FAILURE

Falha ao ler os dados da rede.

Memcached::RES_PROTOCOL_ERROR

Comando inválido no protocolo memcached.

Memcached::RES_CLIENT_ERROR

Erro no lado do cliente.

Memcached::RES_SERVER_ERROR

Erro no lado do servidor.

Memcached::RES_WRITE_FAILURE

Falha ao gravar dados de rede.

Memcached::RES_DATA_EXISTS

Falha ao comparar e trocar: o item que você está tentando armazenar foi modificado desde a última vez que foi obtido.

Memcached::RES_NOTSTORED

O item não foi armazenado: mas não devido a um erro. Isso normalmente significa que a condição para um comando "add" ou "replace" não foi atendida ou que o item está em uma fila de exclusão.

Memcached::RES_NOTFOUND

O item com estas chaves não foi encontrado (com operação "get" ou operações "cas").

Memcached::RES_PARTIAL_READ

Erro parcial de leitura de dados de rede.

Memcached::RES_SOME_ERRORS

Alguns erros ocorreram durante a obtenção múltipla.

Memcached::RES_NO_SERVERS

A lista de servidores está vazia.

Memcached::RES_END

Fim do conjunto de resultados.

Memcached::RES_ERRNO

Erro no sistema.

Memcached::RES_BUFFERED

A operação foi armazenada em buffer.

Memcached::RES_TIMEOUT

A operação expirou.

Memcached::RES_BAD_KEY_PROVIDED

Chave ruim.

Memcached::RES_STORED
Item armazenado.
Memcached::RES_DELETED
Item excluído.
Memcached::RES_STAT
Estatísticas.
Memcached::RES_ITEM
Item.
Memcached::RES_NOT_SUPPORTED
Não suportado.
Memcached::RES_FETCH_NOTFINISHED
A busca não foi concluída.
Memcached::RES_SERVER_MARKED_DEAD
Servidor marcado como morto.
Memcached::RES_UNKNOWN_STAT_KEY
Chave estatística desconhecida.
Memcached::RES_INVALID_HOST_PROTOCOL
Protocolo de host inválido.
Memcached::RES_MEMORY_ALLOCATION_FAILURE
Falha na alocação de memória.
Memcached::RES_CONNECTION_SOCKET_CREATE_FAILURE

Falha ao criar soquete de rede.

Memcached::RES_PAYLOAD_FAILURE

Falha de dados: não foi possível compactar/descompactar ou serializar/desserializar o valor.

Memcached::RES_AUTH_PROBLEM

Disponível a partir do Memcached 3.0.0.

Memcached::RES_AUTH_FAILURE

Disponível a partir do Memcached 3.0.0.

Memcached::RES_AUTH_CONTINUE

Disponível a partir do Memcached 3.0.0.

Memcached::RES_E2BIG

Disponível a partir do Memcached 3.0.0.

Memcached::RES_KEY_TOO_BIG

Disponível a partir do Memcached 3.0.0.

Memcached::RES_SERVER_TEMPORARILY_DISABLED

Disponível a partir do Memcached 3.0.0.

Memcached::RES_SERVER_MEMORY_ALLOCATION_FAILURE

Disponível a partir do Memcached 3.0.0.

adicione uma nota

Notas Enviadas por Usuários (em inglês) 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
5
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