大家都知道“一致性hash算法”是当添加或删除存储节点时,对存储在memcached上的数据影响较小的一种算法。那么在php的两个扩展库中,都可以使用该算法,只是设置方法有所不同。
Memcache
修改php.ini添加:
[Memcache]
Memcache.allow_failover = 1
……
……
Memcache.hash_strategy =consistent
Memcache.hash_function =crc32
……
……
或在php中使用ini_set方法:
Ini_set(‘memcache.hash_strategy','standard');
Ini_set(‘memcache.hash_function','crc32');
Memcached
$mem = new memcached();
$mem->setOption(Memcached::OPT_DISTRIBUTION,Memcached::DISTRIBUTION_CONSISTENT);
$mem->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE,true);
一致性哈希算法在动态添加或删除存储节点时能降低数据迁移影响。在PHP中,Memcache通过设置`memcache.hash_strategy`和`memcache.hash_function`为`consistent`和`crc32`实现。而Memcached则通过`setOption`设置`DISTRIBUTION_CONSISTENT`和`LIBKETAMA_COMPATIBLE`选项来确保一致性。
2469

被折叠的 条评论
为什么被折叠?



