php - 如何在 PHP 中缓存非常动态的网站?

标签 php caching memcached

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

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

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

你们有没有遇到过类似的事情,你们是如何解决的?

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

谢谢。

最佳答案

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

一个很好的解决方案是 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

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

关于php - 如何在 PHP 中缓存非常动态的网站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30778834/

相关文章:

php - MYSQL 语句 : lookup how many records exist how many times in other table

php_value auto_prepend - 导致 500 错误?

java - 为什么 android HttpURLConnection 缓存输入流结果?

node.js - 防止 RequireJS 在 Nodejs 上缓存所需的脚本

apache - 如何强制浏览器刷新网页的缓存版本

php - 现在(对于动态站点)不依赖像 memcached 这样的缓存系统是不是很疯狂?

php - 如何将 php 数组中的 null 值转换为空字符串?

php - 在 mysql_fetch_array 之前序列化?

php - 在 Woocommerce 中获取可变产品的所有变体的总库存