zza*_*rbi 16 php apache memcached
大家都知道PHP上有两个memcache扩展:
您可以将PHP扩展的memcache用作PHP的session_handler,如下所示:
session.save_handler = memcache
session.save_path = "tcp://serv01:11211,tcp://serv02:11211,tcp://serv03:11211"
Run Code Online (Sandbox Code Playgroud)
或者您可以像这样使用memcached:
session.save_handler = memcached
session.save_path = "serv01:11211,serv02:11211,serv03:11211"
Run Code Online (Sandbox Code Playgroud)
但是如何将其他参数设置为memcached,例如:
在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);
Run Code Online (Sandbox Code Playgroud)
但到目前为止,我还没有找到任何文档或示例,说明如何在session_handler使用这些变量时设置这些变量.
在查看了PECL扩展和libmemcached本身的源代码之后,我终于在memcached扩展的作者博客的评论中找到了我的答案.
http://zmievski.org/2009/01/new-memcached-extension
我引用以防他的博客有一天消失:
Andrei说: @Ash,会话保存路径语法与其他memcache扩展名不完全相同.尝试:
的session.save_path = "127.0.0.1:11211"
Ash Searle说:语法是否有任何文档 - 即它是否处理多个服务器和可选参数,如早期的memcache实现?(例如save_path ="127.0.0.1:11211?persistent=1&timeout=1&retry_interval=15")
安德烈说: @Ash,不,这不是那么先进.目前,语法是libmemcached解析器支持的默认语法:基本上,以逗号分隔的hostname:port条目列表,其中:port是可选的.
要么
Rich Choy说: Web上是否有一个引用解释了host:port之后出现的每个连接参数?例如,"timeout = 1"究竟是什么意思?
安德烈说: @Rich,你使用哪个扩展名?:)我不支持那些额外的参数,你必须要谈论pecl/memcache.
和
Frank Orson说: 1)pecl/memcached是否支持客户端上的UDP?我找不到任何关于此的信息.我知道pecl/memcache 3.0.4支持它.
2)pecl/memcached是否在客户端中具有故障转移支持?
安德烈说:弗兰克,我正在研究memcached扩展的下一个版本(2.0).它将具有UDP支持和复制(故障转移).
如果您检查版本2的源代码,您可以看到例如可以在save_path字符串"PERSISTENT ="和"--SERVER"中附加((我不知道它将如何使用)
归档时间: |
|
查看次数: |
11410 次 |
最近记录: |