在使用JSON格式的web服务时,我发现了一个有趣的问题。
假设有web服务。接受几个参数。每个参数都有不同的值设置。您可以通过传递不同的请求参数来获取响应。
请求为JSON格式。因为有太多不同的请求参数组合。为了优化性能,我希望缓存请求和响应对。并存储在本地数据库中。如果有很大的哈希表,我可能希望将请求存储为key,将响应存储为value。
我认为MongoDB可能是一个解决方案。但我不确定。是否可以将请求-响应作为键-值对存储在这类数据库中?所以我可以缓存结果,并立即响应给用户。
谢谢。
发布于 2011-06-07 11:49:24
除非您的代码和数据库的性能非常差(在这种情况下,您有比设置缓存更大的问题),否则您不会从该级别的缓存中获得任何好处。
您可以在任何键/值存储中使用JSON作为键,尽管使用散列作为缓存键而不是直接使用JSON字符串可能更有意义,而且使用memcached或redis的非持久性内存缓存比使用完整的文档数据库(如MongoDB )要好得多。
这种方法会遇到很大的问题是管理缓存过期-要获得实时更新,您需要确切地知道对给定对象的更改会影响哪些缓存对象。如果请求是一个简单的get by ID,那么这很容易,但在您描述的场景中几乎是不可能的。
管理缓存的另一种方法是过期,即在给定时间后从缓存中删除对象。这假设在更新后显示陈旧数据是可以接受的。缓存通常内置了对过期的支持。数据库通常不需要。
https://stackoverflow.com/questions/6195947
复制相似问题