Memcached性能测试

钱朝明
2023-12-01

Linux 下 Memcached安装 和 PHP 开启 Memcached 扩展这里就不多说了,网上很多可供参考,下面对启动memcached后对网站的性能提升做个简单的测试,以下是在长沙写字楼网http://www.cslou.com/)启用memcached扩展之前写一个测试代码:

header("content-type:text/html; charset=utf-8");

//数据初始化
$conn = mysql_connect(www.cslou.com,"test","test") or die("长沙写字楼正在升级...");
mysql_select_db("test",$conn) or die("长沙写字楼正在升级...");
mysql_query("set names utf8");

//memcached初始化
$memcache = new Memcached(); //创建一个memcache对象
$server = array(array('10.165.10.115', 12000));
$memcache->addServers($server) or die ("Could not connect"); //连接Memcached服务器

//删除memcached缓存
$memcache->delete('all_users');

//定义获取memcached缓存函数
function getCache($memcache,$key,$datas,$sql){
//$key = md5($sql);
if(!($datas = $memcache->get($key))){
//echo 'get value from database
';
$result = mysql_query($sql);
while(($row = mysql_fetch_array($result))!=false){$datas[] = $row;}
$memcache->add($key,$datas);
}else{
//echo 'get value from memcached
';
}
return $datas;
}

$sql = 'select * from user';

$start=microtime(true);
for($i=0;$i<10000;$i++){
foreach(getCache($memcache,'all_users',$datas,$sql) as $data){
echo '';
}
}
echo '从memecached缓存获取一万次花费时间:';
echo microtime(true)-$start;

echo '
';
echo '
';
echo '----------------------------------';
echo '
';
echo '
';

$start=microtime(true);
for($j=0;$j<10000;$j++){
$result = mysql_query($sql);
while(($row = mysql_fetch_array($result))!=false){echo '';}
}
echo '从数据库获取一万次花费时间:';
echo microtime(true)-$start;

运行以上php代码,结果如下:

从memecached缓存获取一万次花费时间:0.708089113235

----------------------------------

从数据库获取一万次花费时间:1.07043385506

从运行结果可以看出在使用memcached前后,性能提高了30%左右,当然,这个简单的测试只是从运行时间考虑性能的提升,更多的性能测试我后续将会整理出来,敬请期待。

另外,以上php代码提供了PHP调用Memcached的示例,可供大家参考。

转载请注明出处。

 类似资料: