Since 3.0.0 there are new defaults:
memcache.hash_strategy = consistent
memcache.chunk_size = 32768
Configuration à l'exécution
Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.
| Nom | Défaut | Modifiable | Historique |
|---|---|---|---|
| memcache.allow_failover | "1" | PHP_INI_ALL | Disponible depuis memcache 2.0.2. |
| memcache.max_failover_attempts | "20" | PHP_INI_ALL | Disponible depuis memcache 2.1.0. |
| memcache.chunk_size | "8192" | PHP_INI_ALL | Disponible depuis memcache 2.0.2. |
| memcache.default_port | "11211" | PHP_INI_ALL | Disponible depuis memcache 2.0.2. |
| memcache.hash_strategy | "standard" | PHP_INI_ALL | Disponible depuis memcache 2.2.0. |
| memcache.hash_function | "crc32" | PHP_INI_ALL | Disponible depuis memcache 2.2.0. |
| session.save_handler | "files" | PHP_INI_ALL | Supporté depuis memcache 2.1.2 |
| session.save_path | "" | PHP_INI_ALL | Supporté depuis memcache 2.1.2 |
| memcache.protocol | ascii | PHP_INI_ALL | Supporté depuis memcache 3.0.0 |
| memcache.redundancy | 1 | PHP_INI_ALL | Supporté depuis memcache 3.0.0 |
| memcache.session_redundancy | 2 | PHP_INI_ALL | Supporté depuis memcache 3.0.0 |
| memcache.compress_threshold | 20000 | PHP_INI_ALL | Supporté depuis memcache 3.0.3 |
| memcache.lock_timeout | 15 | PHP_INI_ALL | Supporté depuis memcache 3.0.4 |
Voici un éclaircissement sur l'utilisation des directives de configuration.
-
memcache.allow_failoverbooléen -
Si l'on doit basculer sur d'autres serveurs en cas d'erreur.
-
memcache.max_failover_attemptsentier -
Définit combien de serveurs à essayer lorsque l'on fixe ou récupère des données. Utilisez seulement en conjonction avec memcache.allow_failover.
-
memcache.chunk_sizeentier -
Les données doivent être transférées en morceaux de cette taille ; Configurer cette valeur à une petite valeur provoque plus d'écritures sur le réseau. Essayez d'augmenter cette valeur à 32768 si vous rencontrez des ralentissements inexplicables.
-
memcache.default_portchaîne de caractères -
Le numéro du port TCP par défaut à utiliser lors de la connexion au serveur memcache si aucun autre port n'est spécifié.
-
memcache.hash_strategystring -
Contrôle la stratégie à appliquer lors du mappage des clés sur les serveurs. Définir cette valeur à consistent pour activer la cohérence de hashage qui permet aux serveurs d'être ajoutés ou supprimés de la réserver sans pour autant avoir besoin d'effectuer un nouveau mappage des clés. Définir cette valeur à standard fera que l'ancienne stratégie sera utilisée.
-
memcache.hash_functionstring -
Contrôle la fonction de hashage à appliquer lors du mappage des clés sur les serveurs, crc32 utilisera le CRC32 standard, tandis que fnv utilisera FNV-1a.
-
session.save_handlerchaîne de caractères -
Utilisez memcache comme gestionnaire de session en définissant cette valeur à memcache.
-
session.save_pathchaîne de caractères -
Définit les URL serveur, séparées par une virgule, à utiliser pour le stockage des sessions, par exemple : "tcp://host1:11211, tcp://host2:11211".
Chaque URL peut contenir des paramètres qui seront appliqués au serveur, de la même façon que pour la méthode Memcache::addServer(). Par exemple : "tcp://host1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"
-
memcache.protocolstring -
-
memcache.redundancyinteger -
-
memcache.session_redundancyinteger -
-
memcache.compress_thresholdinteger -
-
memcache.lock_timeoutinteger -
There's a currently undocumented variable that is now available (you can see it in php_info()) for session handling:
memcache.session_redundancy
The default seems to be "2", and it is supposed to influence how many copies of a particular session object that Memcache will store for failover purposes (so with a redundancy of 2, it will store a session on 2 different shards).
This will add slight overhead with extra writes, but overall seems worth it for purposes of failover.
Please note that when you specify more than one memcached server, you don't get the session data copied to every memcached server. Info is only copied to the first one. If the 1st server is down, it goes for the second (but the second will lack the info stored into the 1st one)
