我已经构建了一个托管在Heroku上的Rails API。API使用memcached缓存非常大的序列化对象,以加快API响应时间。这很好,但是由于我的API获得了更多的流量,memcached的成本简直太高了。现在,我为2.5GB支付160美元/mo。
是否有一种更符合成本效益的基于磁盘的解决方案(当然是用速度来交换)?有人尝试过使用MongoDB gem作为Rails中的cache_store吗?在Heroku上,SSD MongoDB的价格/GB似乎要便宜3-7倍。例如,我可以以240美元/mo的价格获得一个40 mo的MongoDB集群。
现在使用Memcached与dalli宝石一起使用的一个最大优点是,我的大型对象被压缩了。MongoDB是为我做这件事,还是需要手动完成?
发布于 2015-05-02 05:46:07
我认为这里有几个选项,但最简单的是您可能可以使用直接向上的AWS Elasticache Memcached,这要便宜得多( 2.78GB的64美元/mo,30 mo的164美元,更大的例子有更好的比率)。您必须解决如何授予安全组对您的Heroku应用程序的访问权限,或者通过EC2实例代理读取。
更广泛地说,如果您使用memcached facet来加快API响应时间,那么在磁盘上存储序列化对象相对于内存中存储对象似乎很可能会大大削弱任何速度效益--您是否有其他基准测试?如果不缓存对象,则生成对象需要多长时间?即使是SSD读取也会比memcached读取慢一个数量级。
https://stackoverflow.com/questions/29830814
复制相似问题