PHP Conference Nagoya 2025

Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de Configuração de Memcached
Nome Padrão Modificável Registro de Alterações
memcached.sess_locking On INI_ALL Disponível a partir do memcached 0.1.0.
memcached.sess_consistent_hash On INI_ALL Disponível a partir do memcached 2.1.0. O valor padrão é On a partir do memcached 3.0.0.
memcached.sess_binary Off INI_ALL Disponível a partir do memcached 2.0.0. Substituído por memcached.sess_binary_protocol a partir do memcached 3.0.0.
memcached.sess_lock_wait 150000 INI_ALL Disponível a partir do memcached 0.1.0. Removido a partir do memcached 3.0.0.
memcached.sess_prefix memc.sess.key. INI_ALL Disponível a partir do memcached 0.1.0.
memcached.sess_number_of_replicas 0 INI_ALL Disponível a partir do memcached 2.1.0.
memcached.sess_randomize_replica_read Off INI_ALL Disponível a partir do memcached 2.1.0.
memcached.sess_remove_failed On INI_ALL Disponível a partir do memcached 2.1.0. Substituído por memcached.sess_remove_failed_servers a partir do memcached 3.0.0.
memcached.compression_type fastlz INI_ALL Disponível a partir do memcached 0.1.0.
memcached.compression_factor 1.3 INI_ALL Disponível a partir do memcached 0.1.0.
memcached.compression_threshold 2000 INI_ALL Disponível a partir do memcached 0.1.0.
memcached.serializer igbinary INI_ALL Disponível a partir do memcached 0.1.0.
memcached.use_sasl Off INI_ALL Disponível a partir do memcached 2.2.0. Removido a partir do memcached 3.0.0.
memcached.default_binary_protocol Off INI_ALL Disponível a partir do memcached 3.0.0.
memcached.default_connect_timeout 0 INI_ALL Disponível a partir do memcached 3.0.0.
memcached.default_consistent_hash Off INI_ALL Disponível a partir do memcached 3.0.0.
memcached.sess_binary_protocol On INI_ALL Disponível a partir do memcached 3.0.0. Substitui memcached.sess_binary.
memcached.sess_connect_timeout 1000 INI_ALL Disponível a partir do memcached 2.2.0.
memcached.sess_consistent_hash_type ketama INI_ALL Disponível a partir do memcached 3.1.0.
memcached.sess_lock_expire 0 INI_ALL Disponível a partir do memcached 2.2.0.
memcached.sess_lock_retries 5 INI_ALL Disponível a partir do memcached 3.0.0.
memcached.sess_lock_wait_max 150 INI_ALL Disponível a partir do memcached 3.0.0. Valor padrão 150 a partir do memcached 3.1.0 (anteriormente 2000).
memcached.sess_lock_wait_min 150 INI_ALL Disponível a partir do memcached 3.0.0. Valor padrão 150 a partir do memcached 3.1.0 (anteriormente 1000).
memcached.sess_persistent Off INI_ALL Disponível a partir do memcached 3.0.0.
memcached.sess_remove_failed_servers Off INI_ALL Disponível a partir do memcached 3.0.0. Substitui memcached.sess_remove_failed.
memcached.sess_server_failure_limit 0 INI_ALL Disponível a partir do memcached 3.0.0.
memcached.sess_sasl_password null INI_ALL Disponível a partir do memcached 2.2.0.
memcached.sess_sasl_username null INI_ALL Disponível a partir do memcached 2.2.0.
memcached.store_retry_count 0 INI_ALL Disponível a partir do memcached 2.2.0 O valor padrão é 0 no memcached 3.2.0 (anteriormente 2).

Aqui está uma breve explicação das diretivas de configuração.

memcached.sess_locking bool

Usa travamento de sessão. Valores válidos: On, Off, o padrão é On.

memcached.sess_consistent_hash bool

Se definido como On, hashing consistente (libketama) é usado para manipulação de sessão. Quando hashing consistente é usado, pode-se adicionar ou remover nó(s) de cache sem atrapalhar muito as chaves existentes. O padrão é On.

memcached.sess_binary bool

Usa o modo binário de sessão memcached. As réplicas Libmemcached funcionam apenas se o modo binário estiver ativado. O padrão é Off.

memcached.sess_lock_wait int

Tempo de espera de tentativa de travamento rotativo da sessão em microssegundos. Tenha cuidado ao definir esse valor. Os valores válidos são inteiros, onde 0 é interpretado como o valor padrão. Valores negativos resultam em um travamento reduzido para um travamento de tentativa. O padrão é 150000.

memcached.sess_prefix string

Prefixo da chave de sessão Memcached. Os valores válidos são strings com menos de 219 bytes de comprimento. O valor padrão é memc.sess.key.

memcached.sess_number_of_replicas int

Grava dados em vários servidores memcached adicionais. Isso é "poor men's HA" (Alta Disponibilidade de pobre, em tradução livre), como libmemcached o chama. Se esse valor for positivo e sess_remove_failed_servers estiver ativado quando um servidor memcached falhar, a sessão continuará disponível a partir de uma réplica. No entanto, se o servidor de memcache com falha ficar disponível novamente, ele lerá a sessão a partir daí, que pode ter dados antigos ou nenhum dado. O padrão é 0.

memcached.sess_randomize_replica_read bool

A réplica da sessão do Memcached é lida aleatoriamente.

memcached.sess_remove_failed int

Permite que o servidor memcached com falha seja removido automaticamente.

memcached.compression_type string

Define o tipo de compactação, os valores válidos são: fastlz, zlib. O padrão é fastlz.

memcached.compression_factor float

Fator de compressão. Armazene o valor compactado somente se o fator de compactação (economia) exceder o limite definido. Armazene compactado se: plain_len > comp_len * factor. O valor padrão é 1.3 (23% de economia de espaço).

memcached.compression_threshold int

O limite de compressão. Não compacta valores serializados abaixo desse limite. O padrão é 2000 bytes.

memcached.serializer string

Define o serializador padrão para novos objetos memcached. Os valores válidos são: php, igbinary, json, json_array, msgpack.

json

Codificação JSON PHP padrão. Este serializador é rápido e compacto, mas funciona apenas em dados codificados em UTF-8 e não implementa totalmente a serialização. Consulte a extensão JSON. Disponível a partir do memcached 0.2.0.

json_array

Como json, mas decodifica em arrays. Disponível a partir do memcached 2.0.0.

php

O serializador PHP padrão.

igbinary

Um serializador binário. Disponível a partir do memcached 0.1.4.

msgpack

Um serializador binário multilíngue. Disponível a partir do memcached 2.2.0.

O padrão é igbinary se disponível, depois msgpack se disponível, depois php em último caso.

memcached.use_sasl bool

Use autenticação SASL para conexões. Valores válidos: On, Off. O padrão é Off.

memcached.default_binary_protocol bool

Define o protocolo memcached padrão para novas conexões. (Para configurar o protocolo memcached para conexões usadas por sessões, use memcached.sess_binary_protocol no lugar.) Se definido como On, o protocolo binário memcached é usado por padrão. Se definido como Off, o protocolo de texto memcached é usado. O padrão é Off.

memcached.default_connect_timeout int

Define o tempo limite de conexão memcached padrão para novas conexões. (Para configurar o tempo limite de conexão do memcached para sessões, use memcached.sess_connect_timeout no lugar.) No modo de não-bloqueio, isso altera o valor do tempo limite durante a conexão do socket em milissegundos. Especificar -1 significa um tempo limite infinito. Especificar 0 significa usar o tempo limite de conexão padrão da biblioteca memcached. O padrão é 0.

memcached.default_consistent_hash bool

Define o padrão para hash consistente para novas conexões. (Para configurar hashing consistente para conexões de sessão, use memcached.sess_consistent_hash no lugar.) Se definido como On, hashing consistente (libketama) é usado para manipulação de sessão. Quando hashing consistente é usado, pode-se adicionar ou remover nó(s) de cache sem bagunçar muito as chaves existentes. O padrão é Off.

memcached.sess_binary_protocol bool

Usa o protocolo binário memcached para sessões memcached em vez do protocolo de texto. As réplicas libmemcached funcionam apenas se o modo binário estiver ativado. No entanto, certos proxies (como twemproxy) funcionarão somente se o protocolo binário estiver desabilitado. O padrão é On a partir da libmemcached 1.0.18. Antes da libmemcached 1.0.18, padrão era Off.

Nota: Em versões mais antigas do php-memcached, essa configuração era chamada de memcached.sess_binary.

memcached.sess_connect_timeout int

Valor de tempo limite de conexão memcached. No modo de não-bloqueio, isso altera o valor do tempo limite durante a conexão do socket em milissegundos. Especificar -1 significa um tempo limite infinito.

memcached.sess_consistent_hash_type string

Tipo de hash consistente da sessão Memcached. Se definido como ketama, hash consistente (libketama) é usado para manipulação de sessão. Se definido como ketama_weighted, hashing consistente ponderado (libketama) é usado para manipulação de sessão. O padrão é ketama. Antes do memcached 3.0, o padrão era ketama_weighted.

memcached.sess_lock_expire int

O tempo, em segundos, antes que um bloqueio libere a si mesmo. Definir como 0 resulta no comportamento padrão, que é usar o max_execution_time do PHP. O padrão é 0.

memcached.sess_lock_retries int

O número de vezes para tentar travar novamente a trava de sessão, não incluindo a primeira tentativa. O padrão é 5.

memcached.sess_lock_wait_max int

O tempo máximo, em milissegundos, de espera entre tentativas de travamento de sessão. O padrão é 150.

memcached.sess_lock_wait_min int

O tempo mínimo, em milissegundos, de espera entre tentativas de travamento de sessão. Esse valor é dobrado em cada nova tentativa de travamento até que memcached.sess_lock_wait_max seja alcançado, após o qual qualquer nova tentativa levará memcached.sess_lock_wait_max segundos. O padrão é 150.

memcached.sess_persistent bool

Se deve-se ou não reutilizar as conexões memcached correspondentes ao(s) valor(es) de session.save_path após o término da execução do script. Não use isso se certas configurações (por exemplo, configurações SASL, sess_binary_protocol) forem substituídas entre as requisições. O padrão é Off.

memcached.sess_remove_failed_servers bool

Permite que o servidor memcached com falha seja removido automaticamente. O padrão é Off.

Nota: Nas versões anteriores de memcached, essa configuração era chamada de memcached.sess_remove_failed.

memcached.sess_server_failure_limit int

Defina esse valor para permitir que o servidor seja removido após o número configurado de falhas de conexão contínuas. O padrão é 0.

memcached.sess_sasl_password string

Senha SASL da sessão. O nome de usuário e a senha precisam ser definidos para que o SASL seja ativado.

memcached.sess_sasl_username string

Nome de usuário SASL da sessão. O nome de usuário e a senha precisam ser definidos para que o SASL seja ativado.

memcached.store_retry_count int

A quantidade de tentativas para comandos de armazenamento com falha. Esse mecanismo permite transferência transparente para servidores secundários quando as operações set/increment/decrement/setMulti falham no servidor desejado em um ambiente multiservidor. O padrão é 2.

adicione uma nota

Notas Enviadas por Usuários (em inglês) 3 notes

up
5
senz
10 years ago
In case, you are wondering why your sessions are "killed" after 1440 seconds, take a look at session.gc_maxlifetime. It's value is used in memcached expiration field according to memcache protocol rules. Also, do not forget about cookie expiration time
up
2
Piotr Gabryjeluk
7 years ago
Apparently in version 3.0.3 the default for memcached.sess_binary_protocol in TRUE. Also note the key is memcached.sess_binary_protocol, not memcached.sess.

Setting memcached.sess_binary_protocol to FALSE is required if you want to save the session to memcached through twemproxy.
up
1
adolfoabegg at gmail dot com
12 years ago
you can get the list of the possible options for the memcached.ini configuration file here:
https://github.com/php-memcached-dev/php-memcached/blob/master/memcached.ini
To Top