CouchDB是否支持开箱即用的缓存,还是必须像Squid一样手动拥有缓存代理?
答案 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
标题,告知您可以继续使用已有的修订版。