什么是缓存二进制数据的最佳方法?

时间:2010-07-22 21:57:29

标签: caching binary-data

我预先生成了2千多万个gzip压缩页面,将它们存储在磁盘上,并通过Web服务器为它们提供服务。现在我需要多个Web服务器可以访问这些数据。重新同步文件需要太长时间。 NFS似乎可能需要很长时间。

我考虑使用像Redis这样的键/值存储,但是Redis只将字符串存储为值,我怀疑它会阻塞gzip压缩文件。

我目前的想法是使用带有字符串键和二进制值的简单MySQL / Postgres表。在我实施这个解决方案之前,我想看看是否有其他人有这方面的经验并且可以提供建议。

2 个答案:

答案 0 :(得分:2)

我对Redis很满意,就是那个。

我也听到过关于memcached的非常积极的事情。它也适用于二进制数据 以Facebook为例:这些人使用memcached,也用于图像!
如您所知,图像是二进制的。

所以,获取memcached,获取一台机器来使用它,一个PHP的绑定器或你用于你的网站的任何东西,然后离开!祝你好运!

答案 1 :(得分:1)

首先,为什么要缓存gzips?网络延迟和传输时间比压缩文件所花费的CPU时间高几个数量级,因此动态执行可能是最简单的解决方案。

然而,如果你肯定有需要,那么我不确定中央数据库会比文件共享更快(当然你应该测量的不是猜测这些东西!)。一种简单的方法可以是将原始文件托管在NFS共享上,让每个Web服务器根据需要进行本地gzip和缓存。 memcached(正如Poni建议的那样)也是一个很好的选择,但增加了一层复杂性。