2015-06-20 90 views
0

我创建了一个小的PHP代码从MySQL特定的表的计数的请求。Mysql的请求缓存

我怎么能压缩,为一个静态页面为了不使每次请求的页面加载?

例如,我可以将其转换为静态HTML每天都在刷新一次?

+0

您需要*缓存*您的查询结果,而不是*压缩*它们。这将有助于告诉我们更多关于您的运营环境的信息 –

回答

1

压缩装置你减少这是需要保存或转移存放东西的大小。但根据你的问题,你想缓存的内容。缓存意味着您暂时存储生成成本很高的数据,以便下次访问速度更快,使用次数更少。这可以结合压缩。例如,在保存静态页面之前先压缩它们,这样它将比没有压缩时占用更少的存储空间。但是这会比你看起来更深入。

有不同的方法和缓存技术。它取决于你的应用哪一个是最好的。一般来说,像油漆https://www.varnish-cache.org/这样的HTTP加速器将成为紧固件。简而言之,清漆将在端口80上侦听并接受http请求。你的网络服务器(例如nginx,apache,iis)会监听另一个端口(可能是81)。对于每一个请求清漆都会在他的缓存中查找,可以在磁盘上或在RAM中。如果请求的网站位于缓存中,清漆会在几百毫秒或更快的时间内以极快的速度递送,具体取决于您的应用和基础设施。当它尚未被缓存时,他将从后端服务器获取该页面,将其保存在缓存中以供进一步请求并将其传递给用户。通常情况下,这与使用php在静态文件中存储内容的结果相同,但使用php花费的时间要快得多。

但这样的解决方案可能是困难的或者甚至是低效的,当你有很多用户的具体要求。例如,当用户可以登录时,无法轻松缓存这些请求:该页面对每个用户都不同,因此可能会限制对内容的访问限制。当你有这样一个场景时,只对没有登录的用户使用清漆是有意义的。

但你应该注意到,这有什么好,你在标题中提到做一个MySQL的缓存! MySQL具有查询缓存本身https://dev.mysql.com/doc/refman/5.1/en/query-cache.html这是一个不同的事情。这只会缓存数据库查询。还有其他的方法来缓存页面的一部分。像xcache http://xcache.lighttpd.net/它有一个全局存储,您可以保存数据,这将花费大量资源来生成。

请记住,这些东西都在不同的级别比缓存整个页面。他们会加快你的网站,但不会像例如清漆那样做。根据你的问题,它看起来像你想要的东西像清漆。当我错了时,你应该更具体一些,并且用你想要引入缓存的系统的细节来编辑你的问题。