caching - Redis用于缓存图像文件?

标签 caching amazon-s3 redis memcached amazon-elasticache

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

是否建议使用 Redis 或 memcached 将图像文件直接存储到缓存中。

与通过 Redis 缓存提供图像相比,Amazon S3 的数据传输定价要高得多。但是直接将图像文件存储在 Redis 上似乎是一个糟糕的提议,因为我在某处读到 Redis 不适合对大数据文件进行操作。我也不明白,如果 Redis 将数据存储在内存中,它将如何存储这么多图像(除非我创建很多实例)。

是否建议将图像文件直接存储到 Redis 上,或者是否有替代方案来缓存这些图像?

pinterest和imgur直接用Redis和memcache存储图片吗?如果不是,为什么他们有这么多实例? Pinterest

最佳答案

你因创造力而受到赞誉,但你还没有找到漏洞,在这里。

首先,尝试从 elasticache 提供图像是完全不合适的。这是一个缓存。根据定义,它是不稳定的。

其次,它不是网络服务器。

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

但即使这些没有说服力,您的问题似乎也是基于对定价结构在多个层面的误解。

There is no Amazon ElastiCache Data Transfer charge for traffic in or out of the Amazon ElastiCache Node itself.

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

从技术上讲,这是准确的,但没有帮助。

这仅与从 elasticache 到您的 EC2 实例的传输有关。您仍然需要通过 Internet 将数据返回给浏览器,无论您是从/通过 EC2 还是从 S3 返回数据,这成本都是一样的。

Data Transfer OUT From Amazon EC2 To Internet

Up to 10 TB / month $0.09 per GB

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

……或者……

Data Transfer OUT From Amazon S3 To Internet

Up to 10 TB / month $0.090 per GB

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

与此同时,CloudFront is $0.085/GB对于发送到以最低价格级别访问边缘位置的浏览器的流量,美国和欧洲。当您选择全局价格等级以外的价格等级时,您可以控制哪些边缘站点可用:

If you choose a price class that does not include all edge locations ... you're charged the rate for the least expensive region in your selected price class.

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

如果配置正确,则为 0.085 美元。

从 S3 到 CloudFront 或从 EC2 到 CloudFront 的传输是免费的。仅从 CloudFront 到 Internet 的费用。

关于caching - Redis用于缓存图像文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37681668/

相关文章:

xcode - 如何在 UITableView 中刷新时清除 NSURL 的缓存

c# - 异步刷新 ASP.NET MVC 中的缓存动态页面

amazon-web-services - Elasticache Redis 端点会随着时间的推移而改变吗?

hadoop - 连接 talend 和 Hadoop

python - 从 Amazon S3 和 Boto3 下载并读取 HDF5 文件

node.js - 发布/订阅 channel 的订阅者数量和超时

node.js - 安排一个小时、一天、一周等时间的事件

c# - 禁用 MvcSiteMapProvider 缓存

java - Spark 重用数据集的持久化功能

html - 如何以 html 格式播放上传到 Amazon S3 存储桶的文件?