【发布时间】:2011-07-12 17:57:43
【问题描述】:
每个人都知道 PHP 上有两个 memcache 扩展:
- 内存缓存
- 内存缓存
您可以使用 memcache 这个 PHP 扩展作为 PHP 的 session_handler,如下所示:
session.save_handler = memcache
session.save_path = "tcp://serv01:11211,tcp://serv02:11211,tcp://serv03:11211"
或者你可以像这样使用 memcached:
session.save_handler = memcached
session.save_path = "serv01:11211,serv02:11211,serv03:11211"
但是如何给memcached设置其他参数如:
- Memcached::OPT_DISTRIBUTION
- Memcached::OPT_RETRY_TIMEOUT
- Memcached::OPT_CONNECT_TIMEOUT
在 PHP 中我会这样做:
$cache = new Memcached();
$cache->addServer('serv01', 11211);
$cache->addServer('serv02', 11211);
$cache->addServer('serv03', 11211);
$cache->setOption(Memcached::OPT_HASH, Memcached::HASH_MD5);
$cache->setOption(Memcached::OPT_DISTRIBUTION, Memcached::DISTRIBUTION_CONSISTENT);
$cache->setOption(Memcached::OPT_CONNECT_TIMEOUT, 150);
$cache->setOption(Memcached::OPT_RETRY_TIMEOUT, 0);
但到目前为止,我还没有找到任何文档或示例说明如何在 session_handler 使用这些变量时设置这些变量。
【问题讨论】:
-
这是一个使用 PHP 和 memcached 的开箱即用实现。 kvz.io/blog/2008/06/22/enhance-php-session-management