据我所知,使用memcached的好处是通过将其缓存在内存中来缩短存储在数据库中的信息的访问时间。但是,基于网络协议(例如TCP)的客户端 - 服务器模型的时间开销也不是很大吗?我的猜测是,实际上可能会更糟,因为网络访问通常比硬件访问慢。我错了什么?
谢谢!
答案 0 :(得分:0)
确实,缓存不会解决网络传输时间问题。但是,对用户而言,重要的是从请求到交付的总时间。如果这个总时间是可察觉的,那么您的网站似乎没有响应。即使您的总体运输时间超出您的控制范围,适当使用缓存也可以提高响应速度。
此外,缓存可用于减少整体服务器负载,这实际上会为您带来更多周期。考虑一个查询的情况,其响应对所有用户都是相同的 - 例如,假设您每次加载页面时都显示有关站点活动或状态的一些信息,并且此信息不依赖于加载用户的用户的身份。页。让我们想象一下,这些信息不会很快发生变化。在这种情况下,您可能决定每分钟或每五分钟重新计算一次信息,或者每N页加载一次,或者那种性质的东西,并始终为缓存版本提供服务。在这种情况下,您将获得两项福利。首先,您已经删除了很多重复计算的值,而您已经决定不需要重新计算这些值,这会降低服务器的负担。其次,您确保用户始终从缓存而不是计算中获得服务,如果计算成本昂贵,这可能会加速他们的工作。 在适当的情况下,这两者都可以从用户的角度提高性能。但是,当然,与任何优化一样,您需要具备基准并实际对数据进行基准测试,而不是根据您对应该是正确的看法。