为什么memcache大都只缓存数据库查询结果,不缓存成html呢?


我新入职的公司,之前的phper已经走了,网站pv100w+,是将数据库中的查询结果存储到memcache,我知道这样减少了mysql压力,直接从内存取结果,速度会很快。但是php脚本没有做缓存处理,就是没有生成html那种缓存文件,这么大的pv,服务器解析php也会消耗很多吧,觉得是不是有必要对php脚本也进行缓存呢?我在网上搜索了一下,很多方案都是只将数据查询结果缓存到memcache。
如果有必要将php脚本进行缓存,我现在的疑问是,
是直接将整个php脚本的html放入memcache(不知道怎样实现?),还是仍然将数据结果缓存到memcache,而将php脚本缓存到文件系统的html方式呢(可以使用smarty的文件缓存机制)?

我是一个新人,没有什么经验,希望老手们能帮我解答这个疑问,如果给个方案参考感激不尽!

memcached php

A.Panda 12 years, 11 months ago

将生成的HTML静态化并且存入memcache完全是可行的。如果说设计最后选择了存结果而不是存生成页面,最大的可能性是这批数据有可能有其他人在用,或者有其他用法。
比如你现在有个程序是将数据从库里面读出来然后列表显示。用HTML存完全没问题,但是如果有一天你突然想给这个列表加个排序功能呢?如果是存的原始数据,加个排序很容易;而如果是存的HTML,那就很麻烦,甚至于完全没办法了。
这就是灵活性和效率的均衡问题。

yahiku answered 12 years, 11 months ago

Your Answer