您的位置:首页 > 数据库 > Memcache

php memcache hash方法均衡性测试

2015-04-02 10:26 148 查看
支持两种hash方法: crc32 fnv
配置如下:
; Hash function {crc32, fnv}memcache.hash_function=fnv

set key脚本:
<?php

$cluster = array(
array('host' => '127.0.0.1', 'port' => '11211'),
array('host' => '127.0.0.1', 'port' => '11212'),
array('host' => '127.0.0.1', 'port' => '11213'),
array('host' => '127.0.0.1', 'port' => '11214'),
array('host' => '127.0.0.1', 'port' => '11215'),
);

$memcache = new Memcache;
foreach ($cluster as $mc) {
$host = $mc['host'];
$port = $mc['port'];
if ($memcache->addServer($host, $port)) {
echo "Add $host:$port to cluster\n";
} else {
echo "Failed to add $host:$port to cluster\n";
}
}

$ok = 0;
for ($n=1; $n <= 200000 ; $n++) {
$key = "k".$n;
if (! $memcache->set($key, 1)) {
echo "Failed to set $key\n";
} else {
$ok ++;
}
if ($n % 100 == 0) {
echo "Completed set $n key to cache\n";
}
}

echo "Set OK: $ok\n";
$memcache->close();

?>


启动cache脚本:
#!/bin/bash

pkill memcached
if [ $? == 0 ];then
echo "kill all memcached"
else
echo "failed to kill cached"
exit 1
fi
memcached -d -p 11211 -u memcached -m 64 -c 1024 &
memcached -d -p 11212 -u memcached -m 64 -c 1024 &
memcached -d -p 11213 -u memcached -m 64 -c 1024 &
memcached -d -p 11214 -u memcached -m 64 -c 1024 &
memcached -d -p 11215 -u memcached -m 64 -c 1024 &

sleep 1
ps aux | grep memcached


结果检查脚本:
#!/bin/bash

T11211=`echo stats | nc 127.0.0.1 11211 | grep cmd_set | awk '{print $3}'`
T11212=`echo stats | nc 127.0.0.1 11212 | grep cmd_set | awk '{print $3}'`
T11213=`echo stats | nc 127.0.0.1 11213 | grep cmd_set | awk '{print $3}'`
T11214=`echo stats | nc 127.0.0.1 11214 | grep cmd_set | awk '{print $3}'`
T11215=`echo stats | nc 127.0.0.1 11215 | grep cmd_set | awk '{print $3}'`

echo "11211 = $T11211"
echo "11212 = $T11212"
echo "11213 = $T11213"
echo "11214 = $T11214"
echo "11215 = $T11215"


最终结果对比:
crc32:
11211 = 5118011212 = 4751911213 = 2617911214 = 2908211215 = 46040

fnv:
11211 = 4708511212 = 3535811213 = 4972111214 = 1878711215 = 49049
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php memcache hash方法均