我开始学习如何在PHP中使用Memcached,我很想知道;你应该开始使用它吗?缓存数据总是更有效率,还是只有在您的网站获得一定数量的点击后才会生效?据推测,Memcached会产生与开销相关的开销,那么什么时候速度优势会超过这个?
提前感谢任何建议。
答案 0 :(得分:9)
你应该在不使用memcached时开始使用它开始影响你的站点/服务器。
因此,当您每天只有100位访问者并且您的网站仍然快速响应时,请不要费心使用它。
但是当你的运行时间在每页200毫秒或更近的地方,并且网站也感觉很慢时,你应该使用一些PHP分析器来查找瓶颈(XDebug集成了一个可以与WinCacheGrind或KCacheGrind结合使用的) 。 特别是缓存数据库请求应该可以节省一些加载时间。
答案 1 :(得分:5)
性能优化的第一条规则是:在需要之前不要进行优化!
如果您没有性能问题,则无需进行优化。其他好的规则包括:
在编写完应用程序之前不要进行优化。你很少知道在开发过程中会出现什么样的现实性能问题,而且只有当你需要在未来进行改变时,它才会使你的代码更加笨拙,更难以修改。
使用分析器或其他一些测量特定代码块的方法来实际测量需要花费很长时间的内容,并优化这些部分。不要只是猜测需要花费很长时间。实际上测量它。
答案 2 :(得分:3)
如果您使用MySQL作为数据库,请在高峰时间在MySQL控制台上运行show processlist命令。如果有很多来自PHP端的查询等待超过500毫秒,那么你应该转向memcached。
答案 3 :(得分:1)
在考虑是否应该使用Memcached进行缓存之前,首先考虑 what / when / if 进行缓存。
如果您有一些“对象”,用于响应批次请求创建的批次数据库读取。由于重新创建了“对象”,您的网站无法跟上其负载。对于要缓存的项目,您还需要一个定义良好的键。
您要缓存的“对象”必须经常读取,然后更改用于创建它的数据库行,否则缓存的好处可能会减少一段时间后数据管理缓存的成本改变了。
缓存单个数据库行不会给您带来匹配的好处。