我想知道Memcached在远程服务器(在相同的LAN上)与磁盘缓存的性能。除了Memcached是一个可扩展的缓存解决方案,与磁盘缓存相比,使用Memcached在性能方面是否有任何优势。
此致 鲻。
答案 0 :(得分:7)
根据我的个人经验,我发现memcached不如磁盘缓存快。我相信这是因为操作系统的磁盘IO缓存,但memcached允许“可扩展”缓存,这意味着如果您有多个服务器访问相同的缓存数据,它将扩展(特别是因为memcached具有非常低的CPU开销比较到PHP)。允许多于一台机器同时访问磁盘缓存的唯一方法是网络安装,这肯定会破坏访问的速度。另外还有一件事你需要担心的是文件缓存是垃圾收集,以防止磁盘饱和。
随着您网站的扩展,您可能希望稍后改变主意,因此无论您做出何种选择,都可以使用缓存包装器,以便轻松更改方法。 Zend提供good API。
答案 1 :(得分:2)
读取的速度大致相同(因为操作系统会缓存经常访问的文件)......不同之处在于写入。使用memcached,它需要做的就是编写ram。但是对于文件存储,它会变得有点棘手。如果你启用了写缓存,那么速度就会快。但是大多数服务器都将其关闭(除非他们有电池备份缓存),以便在电源故障时提供更可靠的写入。因此,如果您的未使用写入缓存,则需要在返回之前在磁盘上完成写入(在服务器级驱动器上可能需要5毫秒以上,可能更多在桌面级硬件上)。因此,写文件可能比memcached慢得多。
但还有另一个空洞。对于文件,当您要编写时,您需要自己锁定文件。这意味着如果两个进程尝试写入同一个文件,则写入必须按顺序完成。使用memcached,这两个写入被推入队列并按接收的顺序发生,但写入过程(PHP)不需要等待实际的提交......