Rumah  >  Artikel  >  pembangunan bahagian belakang  >  memcached - PHP使用memcache权重和一致性哈希无效

memcached - PHP使用memcache权重和一致性哈希无效

WBOY
WBOYasal
2016-08-04 09:19:241495semak imbas

php调用memcahe的权重无效

<code>PHP使用Memcached的扩展addServers使用权重,但是结果还是1:1,权重10:0,请问是什么原因呢?  
</code>
<code><?php /**
 * 测试memcache一致性hash
 * 使用docker运行
 *
 * docker pull memcached
 * docker stop memcache-01
 * docker stop memcache-02
 * docker rm memcache-01
 * docker rm memcache-02
 * docker run --name memcache-01 -p 11201:11211 -d memcached
 * docker run --name memcache-02 -p 11202:11211 -d memcached
 */
$mem = new Memcached;
$mem->addServers(
    [
//        ['192.168.33.4',11201,10],
        ['192.168.33.4',11202,0]
    ]
);
//$mem->setOption(Memcached::OPT_DISTRIBUTION, Memcached::DISTRIBUTION_CONSISTENT);
//$mem->setOption(Memcached::OPT_HASH, Memcached::HASH_MD5);
for($i=0;$iadd($key,'1');
}
</code>

回复内容:

php调用memcahe的权重无效

<code>PHP使用Memcached的扩展addServers使用权重,但是结果还是1:1,权重10:0,请问是什么原因呢?  
</code>
<code><?php /**
 * 测试memcache一致性hash
 * 使用docker运行
 *
 * docker pull memcached
 * docker stop memcache-01
 * docker stop memcache-02
 * docker rm memcache-01
 * docker rm memcache-02
 * docker run --name memcache-01 -p 11201:11211 -d memcached
 * docker run --name memcache-02 -p 11202:11211 -d memcached
 */
$mem = new Memcached;
$mem->addServers(
    [
//        ['192.168.33.4',11201,10],
        ['192.168.33.4',11202,0]
    ]
);
//$mem->setOption(Memcached::OPT_DISTRIBUTION, Memcached::DISTRIBUTION_CONSISTENT);
//$mem->setOption(Memcached::OPT_HASH, Memcached::HASH_MD5);
for($i=0;$iadd($key,'1');
}
</code>

  • 结论:

  • 1 权重只有在使用一致性哈希的时候才有效

  • 2 一致性哈希的时候必须使用OPT_LIBKETAMA_COMPATIBLE
    *

  • 疑问:两个参数必须同时才能生效,为什么要做成2个呢?

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn