Rails / Heroku的基于磁盘的缓存解决方案?

时间:2015-04-23 17:48:12

标签: ruby-on-rails mongodb caching memcached

我已经构建了一个在Heroku上托管的Rails API。 API使用memcached来缓存非常大的序列化对象,以加快API响应时间。这很好用,但随着我的API获得更多流量,memcached的成本非常疯狂。现在我支付160美元/月的2.5GB。

是否存在基于磁盘的解决方案更具成本效益(当然是折衷速度)?有没有人使用Mongo_Store gem将MongoDB作为他们在Rails中的cache_store?似乎价格/ GB比Heroku上的SSD MongoDB便宜3-7倍。例如,我可以以240美元/月的价格购买40GB的MongoDB集群。

现在使用dalli gem的Memcached的一大优势是我的大对象被压缩了。 MongoDB是否为我这样做,或者我是否需要手动执行此操作?

1 个答案:

答案 0 :(得分:2)

我认为你有几个选择,但最简单的是你可以使用直接的AWS Elasticache Memcached,这要便宜得多(2.78GB为64美元,30GB为164美元,更大的实例更好)比)。您必须了解如何授予对Heroku应用程序的安全组访问权限,或者通过EC2实例代理读取。

更广泛地说,如果您使用memcached facet来加快API响应时间,那么将序列化对象存储在磁盘上与内存中的可能性几乎会大大降低任何速度优势 - 您是否有基准建议否则?如果你没有缓存它,对象需要多长时间生成?即使SSD读取也比memcached读取慢一个数量级。