Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.
Name | Default | Changeable | Changelog |
---|---|---|---|
memcache.allow_failover | "1" | PHP_INI_ALL | Available since memcache 2.0.2. |
memcache.max_failover_attempts | "20" | PHP_INI_ALL | Available since memcache 2.1.0. |
memcache.chunk_size | "8192" | PHP_INI_ALL | Available since memcache 2.0.2. |
memcache.default_port | "11211" | PHP_INI_ALL | Available since memcache 2.0.2. |
memcache.hash_strategy | "standard" | PHP_INI_ALL | Available since memcache 2.2.0. |
memcache.hash_function | "crc32" | PHP_INI_ALL | Available since memcache 2.2.0. |
session.save_handler | "files" | PHP_INI_ALL | Supported since memcache 2.1.2 |
session.save_path | "" | PHP_INI_ALL | Supported since memcache 2.1.2 |
Hier eine kurze Erklärung der Konfigurationsoptionen:
Whether to transparently failover to other servers on errors.
Defines how many servers to try when setting and getting data. Used only in conjunction with memcache.allow_failover.
Data will be transferred in chunks of this size, setting the value lower requires more network writes. Try increasing this value to 32768 if noticing otherwise inexplicable slowdowns.
The default TCP port number to use when connecting to the memcached server if no other port is specified.
Controls which strategy to use when mapping keys to servers. Set this value to consistent to enable consistent hashing which allows servers to be added or removed from the pool without causing keys to be remapped. Setting this value to standard results in the old strategy being used.
Controls which hash function to apply when mapping keys to servers, crc32 uses the standard CRC32 hash while fnv uses FNV-1a.
Use memcache as a session handler by setting this value to memcache.
Defines a comma separated of server urls to use for session storage, for example "tcp://host1:11211, tcp://host2:11211".
Each url may contain parameters which are applied to that server, they are the same as for the Memcache::addServer() method. For example "tcp://host1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"
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)