如何实现PHP片段缓存?

 我来答
羶獰漱1
2013-11-15 · 超过57用户采纳过TA的回答
知道答主
回答量:115
采纳率:0%
帮助的人:139万
展开全部
因为数据库用的是PostgreSQL,并发承受非常弱,于是采取了大量缓存策略。已经实现的有:在模型层基类利用memcache缓存PDO获取的关联数组,下次访问就直接从memcached读取,直到数据更新(也由该模型类承担)时候更新的方法摧毁缓存。对于页面级别缓存,自己写了一些实现,主要利用php的文件操作函数将页面存为静态,下次读取到缓存的时候就终止控制器执行action,直接返回缓存结果。部署在ubuntu 10.10、nginx+fastcgi(php-fpm)+php5.3+apc+memcached、pgsql 9上用Apache ab压力测试,结果第二种方法从硬盘获取缓存的居然比第一种从内存获取缓存的要好,分析原因应该是因为第二种终止了控制器动作。看来Zend Framework的开销真的很大。因为有独立服务器不用寄居学校虚拟主机,所以计划继续删减Zend……现在新的问题来了,在网站中更常用的应该是页面片段缓存,可是真的从未听说什么PHP页面片段缓存的方案。谷歌了一下,都是说Yii Framework的片段缓存的。现在我想自己实现片段缓存,可是很没有思路。以上第二种方法在片段缓存问题上行不通,因为内容没有输出完全不能终止控制器执行(比较笨,我用在整页缓存中是命中缓存后exit()暴力退出的)。而不终止控制器第二种方案基本就没有性能优势。而且因为视图引擎是Blitz,没有自带缓存方案,自定义片段缓存不能依赖视图层。之前.net了一年,现在换届了想和团队往开源方向走,可是PHP的一些具体解决方案实在了解甚少。不知大家可否提供一些思路呢?谢谢大家啦~
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式