让memcache和memcached客户端库在PHP中相互通信

让memcache和memcached客户端库在PHP中相互通信,php,memcached,Php,Memcached,当我使用memcached PHP客户机库在一台服务器上保存一些数据,并尝试使用memcache(no D)PHP客户机库从另一台服务器读取数据时,其中似乎有很多垃圾字符 我在Memcached方面尝试了setOption(Memcached::OPT\u BINARY\u PROTOCOL,true),但没有成功 以下是memcached库的设置: $memcache_obj->setOption(Memcached::OPT_DISTRIBUTION, Memcached::DISTR

当我使用memcached PHP客户机库在一台服务器上保存一些数据,并尝试使用memcache(no D)PHP客户机库从另一台服务器读取数据时,其中似乎有很多垃圾字符

我在Memcached方面尝试了
setOption(Memcached::OPT\u BINARY\u PROTOCOL,true)
,但没有成功

以下是memcached库的设置:

$memcache_obj->setOption(Memcached::OPT_DISTRIBUTION, Memcached::DISTRIBUTION_CONSISTENT);
$memcache_obj->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE, true);
$memcache_obj->setOption(Memcached::OPT_CONNECT_TIMEOUT, 50);
$memcache_obj->setOption(Memcached::OPT_SERVER_FAILURE_LIMIT, 2);
$memcache_obj->setOption(Memcached::OPT_NO_BLOCK, true);

我们为什么需要这个?我们使用了一个混合服务器环境,需要Windows和Linux web服务器。但是,没有针对Windows的预编译memcached PHP客户端DLL(请参阅)。我们想从MySQL中存储会话切换到memcached。切换到统一的Linux环境不是一个选项,因为我们的Windows机器上需要专门的软件。

它们不兼容。该协议很简单,我们将记录在案,编写自己的原生PHP客户端或使用internet上的众多示例之一都很容易,例如,如果mysql解决方案有效,为什么还要进行这些痛苦的工作呢?@symcbean主要是因为在mysql中存储会话会带来大量不必要的开销。仅此一项就占了我们数据库负载的13%,因为sessions表太“热”了。但是,是的,看起来我们可能不得不选择Couchbase或Redis。您是否使用处理程序语法?MyISAM或内存存储引擎?我们使用的是InnoDB,因为它具有行级锁定(通常不会对同一会话产生争用),所以我们不使用处理程序语法。我想,我们可以使用内存存储引擎作为一种解决方法,并排除对memcached或couchbase的需要。