CouchDB支持缓存?

时间:2011-02-10 01:14:08

标签: caching couchdb

CouchDB是否支持开箱即用的缓存,还是必须像Squid一样手动拥有缓存代理?

2 个答案:

答案 0 :(得分:14)

简答:否。

答案很长:是吗?

CouchDB的整个理念是考虑以后可能查询的所有内容,现在计算它(方便的时候),并将结果存储在索引中。 CouchdB的所有数据访问都来自扫描这些索引中的一个,这非常快,并且无论数据量多少(实际的对数时间)都会花费大致相同的时间。

此外,CouchDB不会占用太多内存,因为它希望操作系统缓存其磁盘操作。文件系统缓存提供了巨大的性能优势。

最后,CouchDB支持所有用于缓存的Web标准,因此浏览器和ISP通常会缓存部分内容而不需要任何人做任何特殊的事情。

我想我的观点是,对于高读取加载,CouchDB通常不需要缓存。 但是,不,没有开箱即用的缓存功能。 CouchDB使用HTTP的一个原因是允许人们使用标准工具来解决他们的问题。许多人确实在生产中使用CouchDB前面的缓存Web代理。

答案 1 :(得分:5)

它通过ETags支持一种缓存形式。 (HTTP缓存机制)

ETag与文档_rev编号相同。您可以发送If-None-Match标头以及GET请求。如果有新版本,服务器将发送它。否则,它会发回300 Not Modified标题,告知您可以继续使用已有的修订版。