如何有效地缓存JSON格式的Web服务请求 - 响应对

时间:2011-06-01 03:26:15

标签: json nosql hashtable

在使用JSON格式的Web服务时,我发现了一个有趣的问题。

假设有网络服务。接受几个参数。每个参数都有不同的值集。您可以通过传递不同的请求参数来获得响应。

请求采用JSON格式。因为有很多不同的请求参数组合。对于性能优化,我想缓存请求和响应对。并将其存储到本地数据库中。如果有大哈希表,我可能希望将请求存储为密钥,响应为值。

我认为MongoDB可能是一个解决方案。但我不确定。是否可以将请求 - 响应存储为这类数据库中的键值对?所以我可以立即将结果和响应缓存到用户。

谢谢。

1 个答案:

答案 0 :(得分:1)

除非您的代码和数据库的性能非常糟糕(在这种情况下,您遇到的问题比设置缓存更大),您将无法从该级别的缓存中获得任何好处。

您可以将JSON用作任何键/值存储的键,但使用哈希作为缓存键而不是直接使用JSON字符串,以及使用memcached或非持久性内存缓存可能是有意义的redis比MongoDB这样的完整文档数据库工作得更好。

使用此方法遇到大问题的是管理缓存过期 - 要获得实时更新,您需要确切知道哪些缓存对象受到对给定对象的更改的影响。如果请求是一个简单的ID获取,那么这很容易,但在您描述的场景中几乎不可能。

管理缓存的另一种方法是到期是在给定时间后从缓存中删除对象。这假设在更新后显示陈旧数据是可以接受的。缓存通常支持内置过期。数据库通常不支持。