当前位置:  开发笔记 > 数据库 > 正文

哪个更快/更好的缓存,文件系统或Memcached?

如何解决《哪个更快/更好的缓存,文件系统或Memcached?》经验,为你挑选了3个好方法。

我觉得我还不清楚,从文件或memcached中读取内容会更快吗?为什么?



1> gblazex..:

Memcached更快,但内存有限.硬盘很大,但I/O比内存慢.你应该把最热门的东西放到memcached中,其他所有东西可以用来缓存文件.
(或者像这些人一样投入一些钱投入更多的记忆:)

对于某些基准测试,请参阅:缓存性能比较(文件,Memcached,查询缓存,APC)

理论上:

Read 1 MB sequentially from memory       250,000 ns
Disk seek                             10,000,000 ns

http://www.cs.cornell.edu/projects/ladis2009/talks/dean-keynote-ladis2009.pdf


您链接的基准显示与您的语句完全相反 - Memcached比从本地磁盘读取要慢.你能澄清一下这些差异吗?

2> James C..:

有很多不同的方面可能有利于其中一个:

您是否需要/想要在多个服务器之间共享此数据?文件系统是本地的,memcached是通过网络访问的.

你的缓存项目有多大?对于大型对象,文件系统可能更好.

每页可能有多少个memcached请求?TCP连接和拆除可能比本地计算机上的简单文件系统stat()占用更多时间.

我建议你看看你的用例并对这两种方法进行一些分析.如果您可以使用文件系统,那么我会.添加memcached会增加另一层复杂性和潜在的故障点(memcached客户端/服务器).

对于它的价值而言,关于磁盘与内存性能的其他评论可能是学术性的,就像文件系统数据被定期访问一样,然后它可能会坐在操作系统或磁盘缓存中.



3> 小智..:

没有上下文就不能使用"更快".例如,由于网络延迟,访问远程服务器上的memcached中的数据可能会"更慢".另一方面,通过10Gb网络从远程服务器内存读取数据比从本地磁盘读取相同数据"更快".

文件系统缓存和使用memcached的主要区别在于memcached是一个完整的缓存解决方案.因此有LRU列表,到期概念(数据新鲜度),一些高级操作,如cas/inc/dec/append/prepend/replace.

Memcached易于部署和监控(我们如何区分文件系统上的"缓存"工作负载,比如内核?我们可以计算缓存数据的总量吗?数据分布?容量规划?等等).

还有一些混合系统,比如cachelot 基本上,它的memcached可以直接嵌入到应用程序中,因此可以在没有任何系统调用或网络IO的情况下访问缓存.

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有