php apc缓存以及与redis的对比
apc缓存用户数据这个会用, apc_store() 和apc_fetch()函数。
那apc 缓存php 代码,这个怎么用呢?
原文: http://blog.csdn.net/w18704622664/article/details/47132061#
------------------------------------------------------------------------------------------------
APC简介
APC的全称为Alternative PHP Cache, 是一款开源的php插件,用来对php的代码或者用户数据进行缓存。
APC 对php代码的缓存
apc可以去掉php动态解析以及编译的时间,php脚本可以执行的更快。下面这张图很好的说明了为什么了apc可以让php脚本运行得更快。
APC 对用户数据的缓存以及
下面是一个apc和redis的对比测试实验,看一下apc和redis的效率对比。
- function getTimeStamp() {
- $timestr = microtime();
- $timestrary = explode(' ', $timestr);
- $result = intval($timestrary[1])*1000 + intval(floatval($timestrary[0])*1000);
- return $result;
- }
- $redis = new Redis();
- $redis->connect('127.0.0.1', 6379);
- $key = 'key';
- $value ='value';
- $redis->set($key, $value);
- apc_store($key, $value, 1);
- $begin = getTimeStamp();
- for($i = 0 ; $i < 100000 ; $i = $i +1) {
- $result = apc_fetch($key);
- }
- $cost = getTimeStamp() - $begin;
- var_dump($cost);
- $begin = getTimeStamp();
- for($i = 0 ; $i < 100000 ; $i = $i +1) {
- $result = $redis->get($key);
- }
- $cost = getTimeStamp() - $begin;
- var_dump($cost);
- $redis->close();
都是简单的取数据操作,分别进行10万次,单位是毫秒。最后的运行结果redis10万次读在4-5秒之间,而apc得10万次读只有50毫秒左右。可以看到如果是简单的缓存一些数据,并且这些数据不会变化且命中的话,apc还是能带来一定的效率提升的。
安装apc时会有一个apc.php的页面可以通过这个页面查看apc的命中。如下图
APC的配置
配置的例子如下:
- extension= apc.so
- apc.enabled=1
- apc.shm_segments=1
- apc.shm_size=64M ; apc内存的大小,最后的大小需要乘上segments的数量,所以这里一共为apc分配64M
- apc.ttl=7200
- apc.user_ttl=7200
- apc.enable_cli=1 ; 这个如果不开启,则只可以在网页上进行apc操作,不能通过cli进行apc操作
php apc缓存以及与redis的对比相关推荐
- Apc缓存Opcode
1.PHP执行 PHP的运行阶段也分成三个阶段: Parse.语法分析阶段. Compile.编译产出opcode中间码. Execute.运行,动态运行进行输出. ...
- 缓存数据库面试 - redis 的线程模型是什么?为什么 redis 单线程却能支撑高并发?
缓存数据库面试 - redis 的线程模型是什么?为什么 redis 单线程却能支撑高并发? 面试题 redis 和 memcached 有什么区别?redis 的线程模型是什么?为什么 redis ...
- 什么是缓存? 如何测试缓存? 以Redis为例
什么是缓存? 通俗来讲,缓存就是提前准备好的数据,存储在内存中,方便应用快速访问.比如一个固定的查询请求,没缓存的话,查询语句会直接打到数据库上,请求数不多的时候,没有什么影响,但是当并发请求很多时, ...
- springboot @cacheable不起作用_Springboot学习记录13 使用缓存:整合redis
本学习记录的代码,部分参考自gitee码云的如下工程.这个工程有详尽的Spingboot1.x教程.鸣谢! https://gitee.com/didispace/SpringBoot-Learnin ...
- 4 种数据库缓存最终一致性的优缺点对比?最终选择方案四!
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 叶不闻 jjuejin.im/post/5d5c99b66fb9a ...
- Laravel之路——file缓存修改为redis缓存
1.Session: 修改.evn文件: SESSION_DRIVER:redis (如果还不行的话,修改config/session.php的driver) 2.缓存修改为redis 注意:使用 L ...
- Redis-20Spring缓存机制整合Redis
文章目录 概述 Redis 和数据库读 Redis和数据库写 使用 Spring 缓存机制整合 Redis 工程结构 pom.xml DB Script & Redis Address POJ ...
- java缓存_使用Redis和Java进行数据库缓存
数据库缓存是处理这些性能问题的最常见策略之一.缓存涉及将数据库查询的结果保存在更快,更容易访问的位置.正确完成后,缓存将减少查询响应时间,减少数据库负载并降低成本. 但是,缓存也需要小心处理,因为它们 ...
- 【重难点】【Redis 03】缓存雪崩、缓存穿透、缓存击穿、Redis 的内存过期策略、并发读写和双写
[重难点][Redis 03]缓存雪崩.缓存穿透.缓存击穿.Redis 的内存过期策略.并发读写和双写 文章目录 [重难点][Redis 03]缓存雪崩.缓存穿透.缓存击穿.Redis 的内存过期策略 ...
最新文章
- 【Qt】Q_PROPERTY():属性系统
- 范凯:一个二次创业者的失败
- jdbcdslog hibernate sql log
- 智能合约重构社会契约(12)天秤币
- [OS复习]操作系统综述2
- 随时间的反向传播算法 BPTT
- ppp在linux下的编译和安装
- MySQL基本指令汇总
- MapReduce高级编程2
- python安装目录结构_1.5 python安装目录介绍《Python基础开发入门到精通》
- Firefox国际版与国内版
- html实现点击下载文件
- 回环口--Loopback接口
- ASimpleCache开源缓存框架使用之实现抽签小程序
- 读知乎《美国为什么不能通过印制美元来偿还中国购买的美国国债?》有感
- 关于向上转型和向下转型
- 计算机辅助制图CAC,cac-
- 用Python实现跳一跳自动跳跃
- jmeter+influxdb2+grafana的安装与使用
- 2021年1月编程语言排行榜:Python年度编程语言
热门文章
- php fastdfs扩展,php如何安装fastdfs扩展
- lamp 配置mysql_LAMP安装配置超详细讲解
- 计算机理论python字符串作业_[Python基础 ] Day_07_作业参考答案
- jpa分页查询_如何来实现SpringBoot应用的JPA数据持久化和热插拔
- java中jscrollpane_java中JScrollPane问题
- 使用redux和axios获取api数据
- 附件下载原来如此简单
- 四种依恋类型_【工具】成人依恋量类型介绍
- java 短链接url_Java 网址短链接服务原理及解决方案
- 2学习率调整_Keras的Adam优化器参数理解及自适应学习率