yac是Laruence开发的一个php进程共享内存的开源项目。详情可以查看。http://www.laruence.com/2013/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现在还是完善阶段,不建议现在在线上环境使用。

技术交流

php yac缓存如何清理,yac和memcache性能对比测试相关推荐

  1. php yac缓存如何清理,PHP的另一个高效缓存扩展:Yac

    之前的文章中我们已经学习过一个 PHP 自带的扩展缓存 Apc ,今天我们来学习另一个缓存扩展:Yac . 什么是 Yac 从名字其实就能看出,这又是鸟哥大神的作品.毕竟是 PHP 的核心开发人员,他 ...

  2. php yac缓存如何清理,php缓存之yac

    php缓存 一般使用redis,mamache,mongo,file等. 介绍下今天主角-YAC无锁共享内存cache. 下面贴上代码:class yacCache{ private $yac; fu ...

  3. php 共享缓存之yac 快来替换掉APCU memcache

    yac缓存 Yac是用于PHP的共享和无锁内存用户数据缓存.它可以用来替换APC或本地memcached. 要求 PHP 7 + Install $/path/to/phpize $./configu ...

  4. php7.0扩展yac,配置 PHP7, OPCache, Yac,Xiuno奔向 0.00x 秒

    配置 PHP7, OPCache, Yac,Xiuno奔向 0.00x 秒 配置Xiuno的缓存,让Xiuno运行在OPCache+Yac上. 配置PHP7 1. 下载源代码: wget http:/ ...

  5. springboot整合shiro-关于登出时,redis中缓存没有清理干净的问题

    原文地址,转载请注明出处: https://blog.csdn.net/qq_34021712/article/details/84722724 ©王赛超 如果是跟着我的shiro系列博客敲下来的,其 ...

  6. android手机 手动 清理缓存,安卓手机缓存怎么清理_安卓手机清理缓存的具体步骤-系统城...

    安卓手机使用时间久了之后,一些软件会产生较多的缓存,从而导致手机运行速度变慢,所以我们就需要来清理这些缓存,但有的网友不太清楚安卓手机缓存怎么清理,所以今天小编为大家整理分享的就是关于安卓手机清理缓存 ...

  7. nginx 如何缓存和清理

    背景 由于服务器的各方面配置都太低,经不起消耗,所以基本上所有动态的内容都以缓存形式展现,除了部分的交互使用动态意外. 但是每次修改了动态的内容,缓存有没过期,这样得必须手动清理缓存了.于是尝试使用 ...

  8. 利用IPackageManager接口进行缓存垃圾清理(释放存储)

    利用IPackageManager接口进行缓存垃圾清理 获取IPackageManager getPackageSizeInfo方法介绍 freeStorageAndNotify方法释放存储空间 cl ...

  9. android清除缓存 代码,Android应用开发之Android应用清除缓存一般清理目录和代码的教程...

    本文将带你了解Android应用开发Android应用清除缓存一般清理目录和代码的教程,希望本文对大家学Android有所帮助. 一个应用安装完成,会有缓存,缓存一般分为内部存储的和外置的,内存中路径 ...

最新文章

  1. Numpy 广播机制(两个不同维度对象进行数学运算)
  2. 原创 | 疫情之下,这些数字经济赛道危中有机
  3. 南京大学教授施斌及其团队—— 光纤变“神经” 大地能感知
  4. 迷惑行为赏析:把 jpg 图片加密后卖了 247 万
  5. strust2控制标签(二) merge标签,generator标签,subset标签,sort标签
  6. homebrew 常用命令
  7. c语言float m1 m2什么意思,m1和m2的区别,一文带你秒懂这两者的关联
  8. springboot 多数据源_SpringBoot整合多数据源的巨坑一
  9. Exchange server 2003迁移到2010无路由组连接器
  10. activiti学习
  11. 一道不知道哪里来的容斥题
  12. double几位小数_算法竞赛入门之每日一题:分数化化小数(decimal) C语言
  13. 此内容不能显示在一个框架中_.NET开发框架(二)框架功能简述
  14. SwiftUI Xcode教程之在 iOS 中使用Schemes 和 .xcconfig 文件来组织构建交付
  15. 有木有收Java兼职的
  16. css画横线箭头_css 画带边框的箭头的问题
  17. appium第一个脚本
  18. python练习 002 斜边上的高
  19. 万事无忧之SEO GOOGLE优化秘诀
  20. 网络流 最大流 最小割 费用流

热门文章

  1. bluestacks安装安卓引擎时出现2502 2503错误的解决办法
  2. 产业数字化爆发,松山湖开发者村打通数实融合“最后一公里”
  3. Linux模块编程-Linux(17)
  4. GDOI2022退役记(从天上到地下)
  5. 学校计算机生机比计算方式,办学条件评估(彭阳县教育局 2013-2014学年 小学 计算机生机比不达标学校)...
  6. 图文详解Spring AOP,你学会了吗?
  7. airtest连接设备黑屏或者运行报错minicap超时问题
  8. html倒计时代码原理,最全面的JS倒计时代码
  9. 三生万物,万企明道|明道云发布三周年
  10. skew width_CSS3中的变形--扭曲 skew()