PHP 缓存技术有哪些?
时间:2010-04-13
来源:互联网
大家用的都有哪些缓存技术,
高手说说,学习

现在用 memcached,,smarty
作者: wlhgbs2008 发布时间: 2010-04-13
找个eAccelerator 常用的应用程序接口(API)回去好好学习吧
eaccelerator_put($key, $value, $ttl=0)
将 $value 存储在共享内存中,并存储 $tll 秒。
eaccelerator_get($key)
从共享内存中返回 eaccelerator_put() 函数所存储的缓存数值,如果不存在或者已经
过期,则返回 null。
eaccelerator_rm($key)
从共享内存中删除 $key。
eaccelerator_gc()
删除所有过期的键(keys)
eaccelerator_lock($lock)
创建一个指定名称的锁(lock)。该锁可以通过 eaccelerator_unlock() 函数解除,在请求
结束时也会自动解锁。例如:
<?php
eaccelerator_lock("count");
eaccelerator_put("count",eaccelerator_get("count")+1));
?>
eaccelerator_unlock($lock)
解除指定名称的锁(lock)。
eaccelerator_set_session_handlers()
安装 eAccelerator session 句柄。
从 PHP 4.2.0 以后,您可以通过设置 php.ini 中的 "session.save_handler=eaacelerator"
安装 eAccelerator 句柄。
eaccelerator_cache_output($key, $eval_code, $ttl=0)
在共享内存中缓存 $eval_code 的输出,缓存 $ttl 秒。
可以调用 mmcach_rm() 函数删除相同 $key 的输出。例如:
<?php eaccelerator_cache_output('test', 'echo time(); phpinfo();', 30); ?>
eaccelerator_cache_result($key, $eval_code, $ttl=0)
在共享内存中缓存 $eval_code 的结果,缓存 $ttl 秒。
可以调用 mmcach_rm() 函数删除相同 $key 的结果。例如:
<?php eaccelerator_cache_output('test', 'time()." Hello";', 30); ?>
eaccelerator_cache_page($key, $ttl=0)
缓存整个页面,且缓存 $ttl 秒。例如:
<?php
eaccelerator_cache_page($_SERVER['PHP_SELF'].'?GET='.serialize($_GET),30);
echo time();
phpinfo();
?>
eaccelerator_rm_page($key)
从缓存中删除由 eaccelerator_cache_page() 函数创建的相同 $key 的页。
eaccelerator_encode($filename)
返回 $filename 文件经过编译后的编码。
eaccelerator_load($code)
加载被 eaccelerator_encode() 函数编码过的脚本。
作者: bs 发布时间: 2010-04-13
谢谢大牛
作者: wlhgbs2008 发布时间: 2010-04-14
作者: thizluo 发布时间: 2010-05-20
作者: garygay 发布时间: 2010-05-20
你可以看看这篇文章,看DISCUZ X 有什么缓存技术
作者: garygay 发布时间: 2010-05-20
作者: zl8522115 发布时间: 2010-05-21
1,缓存数据库结果,对短时间内改动不大的数据库查询结果进行缓存,按保存方式又可以分成其他的,比如保存在内存中(比如memcache),缓存在文件中等等,
2,缓存代码,使用模板引擎机制常用的方法,像你提到的smarty模板引擎,在模板变成可直接运行的php代码这个过程叫解析,如果模板不发生改变,每次执行都要解析一次,浪费,可以缓存解析后的代码,下次就不用解析了,
3,缓存‘中间代码’(其实我不知道怎么叫),php是用c编译的,最后还是编译成C来执行,同上,如果php代码改动不大,直接缓存已经编译后的c代码,执行效率就高了,这个鸟哥博客好像有提到,叫o。。。什么代码。。。
还有很多其他的,我还没整明白。高手补充。
作者: 只是彼岸花 发布时间: 2010-05-21
http://bbs.phpchina.com/thread-71826-1-1.html
虽然不详细,不完整,凑合着看吧。
作者: stylecn 发布时间: 2010-05-22
服务器端的文件缓存,内存缓存,数据库缓存,输出缓存客户端的浏览器缓存
缓存颗粒:
粒状缓存,块状缓存,这两者结合可以灵活的构建全站缓存,或者局部功能模块缓存
缓存用途:
SQL缓存,opcode,反向代理,浏览器缓存,长连接,模板页面缓存,JavaScript/CSS的动态化缓存,频繁资源缓存等等
从某种意义上,可以说大部分的优化都是围绕缓存进行的
作者: 7u5 发布时间: 2010-05-22
缓存的意义在于让数据源离CPU更近且一般具有时效性(非持久),而不是偷换概念.
如果DISCUZ的文件"缓存"方式算缓存,那么这世界上基本没什么不算缓存了,并不是说DISCUZ这样不好,它具备了缓存的理念,但是直接称之为"缓存"就不太靠谱了,你可以叫它代码"预处理",而新手不可盲从.
想更多争议查看 http://bbs.phpchina.com/viewthread.php?tid=134159
作者: bs 发布时间: 2010-05-22
不过我并不想否认你的观点。
我先说说自己的看法,cache本意是快速缓冲贮存区,一般般意义上是用性能更快的介质来存储部分常用的数据或指令,这里如果命中率比较高,则提速非常明显,否则没意义。
这里强调的是硬件,但在从计算机科学的角度来看,硬件和软件其实在性能本质上,趋于近似。
所以,我认为把数据源获取及处理,并存储在硬盘里(文件),也算一种缓存。
因为实际上,一个查询费时良久,取出的只是其中的若干条数据。
把这个过程预处理再存储起来就是一种缓存。一个用介质实现速度提升,一个用预处理方式实现速度提升。
“预处理”,我觉得bs的描述说透了这种机制的核心实现,但是问题是,这里并不仅仅是预处理而已,cache的另外一个概念是“缓冲”,即把低速运算与高并发所要求高性能矛盾进行缓和处理。
至于时效性,文件缓存也有时效性,就是数据源更改后,该缓存过期,只是Discuz延后统一处理,而不是立即更新。
而且,这个文件解决了另外一个问题,就是中间算法开销的问题。
而memcached需要提供的中间算法开销有两个方面:
1。 哈希算法的计算,这点可以忽略不计。
2。 分布式集群管理运算开销,类似DBMS的。
当然memcached仍然是高效的,这两方面开销都不算大,但并不是不存在。
作者: 7u5 发布时间: 2010-05-22
作者: bs 发布时间: 2010-05-22
作者: 那个故事 发布时间: 2010-05-22
不过我并不想 ...
7u5 发表于 2010-5-22 18:43
我的意见和你一致。
抛开专业术语,用户常见缓存之词,应当是IE缓存吧。不管你愿不愿意,这个的确叫“缓存”。
按我理解,缓存的目的是为了改善速度和性能,并不仅限于CPU。预读取或者说预处理恰恰是缓存的具体体现。
至于存储介质,我觉得不必介意,当硬盘比光盘的处理速度更快时,把缓存数据放在硬盘上也可以认为是缓存的体现。
不能因为网络比硬盘慢,硬盘比内存慢,内存比CPU慢就不承认其它缓存存储介质。
至于时效性,我认为这和缓存没有关系。这是系统设计问题,而不是缓存概念的一部分。
作者: stylecn 发布时间: 2010-05-24
cdn
f5
作者: miduo 发布时间: 2010-05-25
作者: clackroal 发布时间: 2010-05-25
stylecn 发表于 2010-5-24 11:12
此言差矣,没有时效性的"缓存"通常叫数据镜像/幅本技术是严谨的,笼统起来那叫艺术
作者: bs 发布时间: 2010-05-25
ZF里面的文件形式算不算缓存呢?把数据都放到了文件里面
$cache = Zend_Cache::factory('Core',
'File',
$frontendOptions,
$backendOptions);
作者: wlhgbs2008 发布时间: 2010-06-17
作者: hlsblog 发布时间: 2010-07-26
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28