1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > php yac缓存如何清理 yac和memcache性能对比测试

php yac缓存如何清理 yac和memcache性能对比测试

时间:2020-11-07 03:09:46

相关推荐

php yac缓存如何清理 yac和memcache性能对比测试

yac是Laruence开发的一个php进程共享内存的开源项目。详情可以查看。//03/18/2846.html

memcache就不用多说了,如果你不知道拿说明你不是个真正的程序猿。

从应用场景来说,yac相当于本地的memcache,即php程序和memcache搭建在一台服务器上。如果本机的php进程间想共享数据,可以使用yac或者memcache。那么这两个东东那个性能更好呢?今天做了下性能测试。

测试php脚本如下:

<?php

function test_memcache_set(){

$mem = memcache_connect('127.0.0.1', 11211);

$value = mt_rand();

$res = memcache_set($mem, 'var_key', $value, false, 3000);

var_dump($res);

if (!$res) {

header("HTTP/1.0 404 Not Found");

}

}

function test_memcache_get(){

$mem = memcache_connect('127.0.0.1', 11211);

$res = memcache_get($mem, 'var_key');

var_dump($res);

if (!$res) {

header("HTTP/1.0 404 Not Found");

} else {

echo $res;

}

}

function test_yac_set(){

$yac = new Yac();

$value = mt_rand();

$res = $yac->set('var_key', $value);

var_dump($res);

if (!$res) {

header("HTTP/1.0 404 Not Found");

}

}

function test_yac_get(){

$yac = new Yac();

$res = $yac->get('var_key');

var_dump($res);

if (!$res) {

header("HTTP/1.0 404 Not Found");

} else {

echo $res;

}

}

echo $_GET"m";

?>

高并发写的性能

ab -t 10 -c 100 http://10.32.232.129/test.php?m=test_memcache_set

Time per request: 372.394 [ms] (mean)

Time per request: 404.438 [ms] (mean)

Time per request: 401.829 [ms] (mean)

ab -t 10 -c 100 http://10.32.232.129/test.php?m=test_yac_set

Time per request: 196.878 [ms] (mean)

Time per request: 200.621 [ms] (mean)

Time per request: 255.070 [ms] (mean)

高并发读的性能

ab -t 10 -c 100 http://10.32.232.129/test.php?m=test_memcache_get

Time per request: 571.452 [ms] (mean)

Time per request: 571.066 [ms] (mean)

Time per request: 668.744 [ms] (mean)

ab -t 10 -c 100 http://10.32.232.129/test.php?m=test_yac_get

Time per request: 412.464 [ms] (mean)

Time per request: 404.469 [ms] (mean)

Time per request: 380.599 [ms] (mean)

高并发写的时候,同时读的性能

ab -t 30 -c 20 http://10.32.232.129/test.php?m=test_memcache_set

Time per request: 150.284 [ms] (mean)

Time per request: 153.413 [ms] (mean)

ab -t 10 -c 20 http://10.32.232.129/test.php?m=test_memcache_get

Time per request: 125.516 [ms] (mean)

Time per request: 122.119 [ms] (mean)

ab -t 30 -c 20 http://10.32.232.129/test.php?m=test_yac_set

Time per request: 85.494 [ms] (mean)

Time per request: 87.736 [ms] (mean)

ab -t 10 -c 20 http://10.32.232.129/test.php?m=test_yac_get

Complete requests: 1220

Failed requests: 829

(Connect: 0, Length: 829, Exceptions: 0)

Time per request: 164.116 [ms] (mean)

Complete requests: 1300

Failed requests: 809

(Connect: 0, Length: 809, Exceptions: 0)

Time per request: 154.907 [ms] (mean)

测试结论如下:

1.无论单独的并发写,还是单独的并发读,yac都比memcache好。

2.在并发写的同时,并发读。yac已经出现读取数据失败,基本到了不可用的地步。

因此,如果是php程序缓存数据在一台机器上时,并且写的并发不大,建议使用yac。初此之外建议使用memcache。

另外,yac现在还是完善阶段,不建议现在在线上环境使用。

技术交流

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。