首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >php缓存技术

php缓存技术
EN

Stack Overflow用户
提问于 2011-05-07 01:02:47
回答 3查看 5.3K关注 0票数 11

嗨,这更像是一个信息请求,真的。

我目前正在开发一个相当大的事件列表网站,并且已经开始考虑对正在使用的数据集进行一些缓存。

本周我一直在处理APC,并在测试过程中看到了一些真正的改进,然而,当我尝试缓存频繁变化的数据时,我正在努力了解所需的最佳实践和技术。

例如,用户点击主页,默认情况下会显示最近发生的10个事件,如果该用户已登录,则这些事件是特定于位置的。当处理频繁改变的登录状态和数据时,可以部署某种类型的缓存系统吗?系统当前允许用户“显示更多事件:这是从数据库中提取额外结果的ajax请求。

我真的没有在这方面找到任何东西,因为我不确定要搜索什么,但我真的很有兴趣知道高级缓存系统使用的技术,特别是处理更改的数据和特定于用户的数据?

我的意思是,这值得吗?在处理这类标准时,其他的性能提升器是不是?

任何关于这方面的文章或提示和信息都将非常感谢!如果需要任何其他信息,请让我知道!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-07 02:05:05

您的基本解决方案是:

  • 文件cache
  • memcached/redis
  • APC

每种方法的目的略有不同。

文件缓存通常是您在可以预渲染文件或部分文件时使用的东西。它用于模板解决方案、部分视图(mvc)、css框架。诸如此类的东西。

Memcached和redis大体上是一样的,除了redis更多的是面向noSQL的东西。它们用于分布式缓存(多个服务器,相同的缓存数据)和存储会话,如果您有the服务器集群。

APC有两个优点:操作码缓存和数据缓存。比memcached更快,但对每个服务器都是单独工作的。

底线是:在一个庞大的项目中,你将使用所有这些工具。每种方法都用于不同的任务。

票数 7
EN

Stack Overflow用户

发布于 2011-05-07 01:24:51

所以你有操作码缓存,它通过将已经编译的PHP文件保存在缓存中来加快速度。

然后是数据缓存,在其中保存变量或对象,这些变量或对象需要时间来获取从SQL查询构建的数据。

然后你有输出缓存,这是你把你的网页的整个块保存在文件中,并输出这些文件,而不是在每次请求时构建你的网页块。

我曾经写过一篇关于如何进行输出缓存的博客文章:

http://www.spotlesswebdesign.com/blog.php?id=17

如果它是特定于位置的,并且有十亿个位置,那么假设你有大量的磁盘空间,你最好的选择可能是输出缓存,但你必须使用你的头来获得最好的缓存,因为当涉及到如何最好地应用缓存时,每种情况都非常不同。

票数 4
EN

Stack Overflow用户

发布于 2011-05-07 01:25:03

如果操作正确,使用memcached或类似的解决方案可以极大地提升站点性能。通过直接更改缓存的数据,而不是从数据库中恢复数据,对于不需要保存或可以简单地重建的数据,您可以完全绕过数据库。由于数据库通常是web应用程序中最关键的组件,因此可以减轻它的任何负载都是一个额外的好处。

另一方面,与大多数缓存调整相比,确保数据库查询尽可能轻便高效对性能的影响要大得多。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5914700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档