热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

yac是Laruence开发的一个php进程共享内存的开源项目。详情可以查看。http:www.laruence.com201303182846.htmlmemcache就不用多说

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

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

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

测试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现在还是完善阶段,不建议现在在线上环境使用。

技术交流

42e1274b8af00aa6b98a5ce9d1810905.gif



推荐阅读
  • MySQL Administrator: 监控与管理工具
    本文介绍了 MySQL Administrator 的主要功能,包括图形化监控 MySQL 服务器的实时状态、连接健康度、内存健康度以及如何创建自定义的健康图表。此外,还详细解释了状态变量和系统变量的管理。 ... [详细]
  • 深入理解:AJAX学习指南
    本文详细探讨了AJAX的基本概念、工作原理及其在现代Web开发中的应用,旨在为初学者提供全面的学习资料。 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • 本文详细介绍了在Windows系统中如何配置Nginx以实现高效的缓存加速功能,包括关键的配置文件设置和示例代码。 ... [详细]
  • Web动态服务器Python基本实现
    Web动态服务器Python基本实现 ... [详细]
  • 本文探讨了如何通过Service Locator模式来简化和优化在B/S架构中的服务命名访问,特别是对于需要频繁访问的服务,如JNDI和XMLNS。该模式通过缓存机制减少了重复查找的成本,并提供了对多种服务的统一访问接口。 ... [详细]
  • PHP面试题精选及答案解析
    本文精选了新浪PHP笔试题及最新的PHP面试题,并提供了详细的答案解析,帮助求职者更好地准备PHP相关的面试。 ... [详细]
  • 电商高并发解决方案详解
    本文以京东为例,详细探讨了电商中常见的高并发解决方案,包括多级缓存和Nginx限流技术,旨在帮助读者更好地理解和应用这些技术。 ... [详细]
  • SDWebImage第三方库学习
    1、基本使用方法异步下载并缓存-(void)sd_setImageWithURL:(nullableNSURL*)urlNS_REFINED_FOR_SWIFT;使用占位图片& ... [详细]
  • publicclassBindActionextendsActionSupport{privateStringproString;privateStringcitString; ... [详细]
  • 入门指南:使用FastRPC技术连接Qualcomm Hexagon DSP
    本文旨在为初学者提供关于如何使用FastRPC技术连接Qualcomm Hexagon DSP的基础知识。FastRPC技术允许开发者在本地客户端实现远程调用,从而简化Hexagon DSP的开发和调试过程。 ... [详细]
  • 本文详细介绍了如何利用 Bootstrap Table 实现数据展示与操作,包括数据加载、表格配置及前后端交互等关键步骤。 ... [详细]
  • Redis:缓存与内存数据库详解
    本文介绍了数据库的基本分类,重点探讨了关系型与非关系型数据库的区别,并详细解析了Redis作为非关系型数据库的特点、工作模式、优点及持久化机制。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • Linux一键安装web环境全攻略
    摘自阿里云服务器官网,此处一键安装包下载:点此下载安装须知1、此安装包可在阿里云所有Linux系统上部署安装,此安装包包含的软件及版本为& ... [详细]
author-avatar
紫藤老君的八卦炉
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有