2016-06-07 81 views
0

我正在使用Amazon S3存储和检索图像存储网站的图像。 问题是多个用户必须多次检索相同的图像。Redis用于缓存图像文件?

是否建议使用Redis的或memcached的用于直接存储到他们这缓存图像文件。

亚马逊S3定价数据传输相比,经由高速缓冲存储器的Redis服务图像高得多。但是将图像文件直接存储在Redis上似乎是个不好的主张,因为我在某处读到Redis不适合在大型数据文件上操作。另外我不明白,如果Redis在内存中存储数据,它将如何存储如此多的图像(除非我创建了许多实例)。

它是可取的图像文件存储到直接Redis的或者是有用于高速缓存这些图像的备用?

待办事项和Pinterest的使用imgur Redis的内存缓存,并直接存储图像?如果不是,为什么他们有这么多例子? Pinterest

+0

在Redis中存储图像看起来像一个可怕的想法,因为它会很快填满Redis服务器上的可用RAM。此外,您的声明“数据传输的S3定价远高于通过Redis提供的图像的比例”对我来说听起来不正确。我想你错过了那里。缓存图像的标准方法是使用CDN,如CloudFront,CloudFlare或MaxCDN。 –

+0

@MarkB我看着CloudFront,发现它的定价是(0.85美元--0.25美元),对于S3定价而言,定价更高。虽然AWS表示:“Amazon ElastiCache数据传输不收取Amazon ElastiCache节点本身的流量费用。” [这里](https://aws.amazon.com/elasticache/pricing/) – Mayank

+0

@MarkB你也可以告诉我,如果不是直接缓存图像,pinterest和imgur会使用Redis和Memcached吗? – Mayank

回答

3

你因创造力而获得荣誉,但在这里你还没有发现漏洞。

首先,尝试从elasticache服务图像是完全不合适的。这是一个缓存。它的定义很不稳定。

其次,它不是一个Web服务器。

第三,它不打算暴露在互联网上。

但是,即使这些都没有说服力,你的问题似乎前提是价格结构的误解在几个层次上。

Amazon ElastiCache节点本身没有Amazon ElastiCache数据传输费用用于流入或流出流量。

https://aws.amazon.com/elasticache/pricing/

技术上说,这是准确的,但它是没有帮助的。

这只与从elasticache到您的EC2实例的转移有关。您仍然需要通过互联网将数据返回到浏览器,无论您从/通过EC2还是从S3返回,都会产生相同的成本。

数据传输OUT从亚马逊EC2为互联网

高达10 TB /每月$ 0.09 GB

https://aws.amazon.com/ec2/pricing/

......或者......

Dat从亚马逊S3到互联网的传输输出

高达10 TB /月$ 0。090每GB

https://aws.amazon.com/ec2/pricing/

同时,CloudFront is $0.085/GB流量发送到正在访问的最低价格类中,美国和欧洲的边缘位置的浏览器。并且,当您选择除全球价格类别之外的价格类别时,您可以控制哪些边缘位置可用:

如果您选择不包含所有边缘位置的价格类别......则会收取您选择的价格类别中最便宜的地区。

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PriceClass.html

也就是说如果配置正确的$ 0.085。

从S3转移到CloudFront或从EC2转移到CloudFront不收取任何费用。只有从CloudFront到互联网的收费。