Php memcache.hash_的策略是什么?
Php memcache.hash_的策略是什么?,php,memcached,Php,Memcached,我想知道为什么会有memcache.hash_策略php.ini设置。手册上说: 控制将密钥映射到服务器时要使用的策略。将此值设置为“一致”以启用一致哈希,从而允许在不重新映射密钥的情况下从池中添加或删除服务器。将此值设置为标准会导致使用旧策略 但程序员自己不是把钥匙映射到服务器吗?下面是一些伪代码: $memcacheServerList=array('host1','host2','host3') $key='my_key' $memcacheServerIndex=crc32($key)
我想知道为什么会有memcache.hash_策略php.ini设置。手册上说: 控制将密钥映射到服务器时要使用的策略。将此值设置为“一致”以启用一致哈希,从而允许在不重新映射密钥的情况下从池中添加或删除服务器。将此值设置为标准会导致使用旧策略 但程序员自己不是把钥匙映射到服务器吗?下面是一些伪代码:
$memcacheServerList=array('host1','host2','host3')
$key='my_key'
$memcacheServerIndex=crc32($key)%sizeof($memcacheServerList)
我错过了什么?您正在使用一些旧的示例。使用memcache的现代方式如下:
$servers = array(
"10.1.1.1",
"10.1.1.2",
"10.1.1.3",
);
$m = new Memcache();
foreach($servers as $server) {
$m->addServer ( $server );
}
$m->add($key, 'this is value');
现在memcache代码将使用其哈希方法来确定服务器。您可以使用两个选项。一致的哈希将减少从列表中删除服务器的影响。其中,传统的哈希基本上就是上面的代码。你可以在上找到更多关于如何正确使用多个memcache服务器的信息。哦,谢谢你,瑞克,现在一切都清楚了!
$servers = array(
"10.1.1.1",
"10.1.1.2",
"10.1.1.3",
);
$m = new Memcache();
foreach($servers as $server) {
$m->addServer ( $server );
}
$m->add($key, 'this is value');