Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Memcache向特定memcached服务器添加密钥_Php_Memcached - Fatal编程技术网

Php Memcache向特定memcached服务器添加密钥

Php Memcache向特定memcached服务器添加密钥,php,memcached,Php,Memcached,我已使用以下代码将两个memcached服务器添加到我的web应用程序中: $servers = array( array('xxx.xxx.xxx.185', 11211), array('xxx.xxx.xxx.10', 11211) ); global $m; $m = new Memcached('persistant-id'); if (0 == count($m->getServerList())) {

我已使用以下代码将两个memcached服务器添加到我的web应用程序中:

    $servers = array(
      array('xxx.xxx.xxx.185', 11211),
      array('xxx.xxx.xxx.10', 11211)
    );
    global $m;
    $m = new Memcached('persistant-id');
    if (0 == count($m->getServerList())) {
        error_log("add memcache servers num: " . count($m->getServerList()));
        return $m->addServers($servers);
    }
我想将密钥/值添加到特定服务器。 如何向xxx.xxx.xxx.185服务器添加特定密钥

我想在网上找到
addByKey($serverKey,$key,$value,$expiration=null)
但我找不到$serverKey是什么


有什么帮助吗?

我认为在使用池连接时,您不能通过ip选择特定的服务器来存储数据(我可能错了,但没有看到任何相反的情况)。根据我对*ByKey()函数的理解,
$serverKey
只是一个可以指定的任意分组。您没有选择数据存储在哪台服务器上,只是指定希望使用该
$serverKey
添加的所有项目都在同一台服务器上结束

我所知道的确保数据最终在特定服务器上的唯一可靠方法是创建连接并仅将数据添加到该特定服务器

我能想到的一个不太理想的替代建议(我不知道它是否有效,这纯粹是一个假设),就是只创建一个到
xxx.185
服务器的连接,用你想要的
$serverKey
添加一个项目,然后创建一个池连接,使用相同的
$serverKey
添加一组项目,然后使用
getServerByKey()
方法查看添加的所有数据是否都在同一台服务器上

如果是这样,您只需使用所有使用的
$serverKey
,为所需的服务器添加种子

如果两台服务器都出现,则
$serverKey
可能是特定于连接的,而不是可用的数据集

但这并不是一个理想的解决方案,特别是对于memcached数据的波动性,若这真的有效的话(就像我说的,从未尝试过,这纯粹是猜测)。每次memcached重新启动时,您都必须重新为服务器设置种子,或者为了获得更多空间,所有带有
$serverKey
的数据都会被丢弃

希望有帮助