2

背景:

我有一个 Web 服务,它接受 1 到 20 个对象的输入,然后对每个对象执行大约需要 100-300 毫秒的操作。该操作的结果平均有效期为一小时,输出是字符串和整数的哈希。平均请求有 5 个对象,因此响应时间大约为 1000 毫秒。在服务获得牵引力之前,我预计缓存命中率会非常低——我们暂时称其为 10% 的命中率。

我的应用程序托管在 Heroku 上,出于这个问题的目的,我不想移动它。

我试过的

我从 IronCache 的免费产品开始(通过 Heroku 插件),并做了一些非常粗略的测试。简单对象的 put() 和 get() 请求大约需要 20-40 毫秒。不支持批处理操作,因此假设 100% 缓存未命中,这将为我的响应中每个对象增加 20-40 毫秒。在我平均 5 个对象的情况下,大约多出 150 毫秒。

IronCache 不支持批处理操作,但这似乎可以解决我的问题。

我的问题

鉴于此配置文件,是否值得在 Heroku 上使用托管缓存(键/值)存储?如果是这样,是哪个?

4

2 回答 2

1

我选择了 MemCachier,这是 Heroku 的一个附加组件,它提供 25MB 的免费层。他们使用 Dalli 作为他们的 Ruby 库,它支持 get_multi 和一个 multi 函数,它接受一个块并将发送延迟到块的末尾。

于 2013-03-02T02:04:06.597 回答
0

如果批处理操作对您来说值得缓存,您应该使用 redis,它支持它们。

于 2013-03-01T21:03:29.150 回答