如何在PHP中缓存一个非常动态的网站?

时间:2015-06-11 10:55:14

标签: php caching memcached

我的网站上有一个名为Views的部分,其中一位用户可以查看谁查看了他们的个人资料。考虑到它需要是实时的,以便如果用户检查此页面或每30秒刷新一次,他们可以看到新的访问者吗?

我的另一部分是Messages,其中用户互相发送消息。这也需要是实时的。这可以缓存吗?

我想要缓存的另一部分是new users部分,用户可以在其中看到新注册的用户。

你们有过类似的经历吗?你是如何继续解决它的?

这样做的目的是减少对数据库的调用次数。在增加数据库的限制之前,我想看看这个选项并对所有内容进行微调。

谢谢。

1 个答案:

答案 0 :(得分:1)

通常,缓存意味着您每次都会保存一个不必计算的站点并保存性能。

一个很好的解决方案是Varnish和ESI。您可以排除部分代码并使用ESI标记替换它们。 Varnish获取该URL并将它们放在一起并交付整个站点。你有一些可能性,Varnish将它们变得很懒,所以当用户进入页面时,他会获得旧版本,而在后台Varnish会为下一个请求加载一个新版本。

https://www.varnish-cache.org/trac/wiki/ESIfeatures

https://www.varnish-cache.org/docs/4.0/users-guide/esi.html

一些Frameworks具有Varnish的插件,并实现了ESI的功能并自动替换了部分页面。