2

我正在从memcache迁移到memcached,我注意到的差异之一是压缩标志似乎是为所有 set()调用设置的,而不是像memcache.

这是每个连接的设置,还是我可以打开和关闭它?如果是后者,为每个set()调用设置压缩标志的最佳方法是什么?

目前我正在考虑做这样的事情:

<?php
    if ($compress) $mc->setOption(Memcached::OPT_COMPRESSION,true);

    $return = $mc->set($key,$object,$expiration);

    if ($compress) $mc->setOption(Memcached::OPT_COMPRESSION,false);

这是正确的方法吗?

我也是$mc这样设置的,如果有什么不同的话:

<?php
    $mc = new Memcached("cl");
    $mc->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE,true);
    $mc->setOption(Memcached::OPT_BINARY_PROTOCOL,true);

    if (count($mc->getServerList()) === 0) {
        $mc->addServers(array (
            array ($GLOBALS["mc"]["host"],$GLOBALS["mc"]["port"]),
        ));
    }

谢谢!

4

1 回答 1

2

看了一下这两个 方法的签名,也看了 Memcached 的源码,我觉得不可能每个都设置set

见github 上的 php-memcached-dev,寻找php_memcached.c

(顺便说一句,客户端的名字多么愚蠢。Memcached 以前表示服务器守护进程,现在它表示服务器和客户端,你不能再用谷歌搜索了。)

于 2011-04-13T12:47:21.300 回答