如何在更新简单计数器时阻止CouchDB创建文档修订

May*_*ain 5 javascript couchdb

我想在CouchDB文档中存储计数器,在每个页面视图上递增.CouchDB将仅为1次计数器更新创建此文档的完整版本.

这会消耗太多空间吗?考虑到我每天有1M次点击,我可能会在一天内查看文档的1M修订版.

对此有任何想法......

谢谢!

小智 7

CouchDB非常清楚它所做出的权衡.在这种特殊情况下,我们正在谈论拥有一个防撞数据库,遗憾的是,在压缩之前可以并将使用大量磁盘.

您可以获得这种可靠性以及大量的读取并发性.您还可以与任何其他节点无缝复制.这是它的培根.由于碰撞计数器而必须紧凑是它的吮吸.忘了用_rev_limit来解决问题.你会搞砸自己,因为修改是Couch的基础.

您有一种可能性是记录一些信息,日期和时间,IP和其他东西.然后,您将创建一个发出所需数据的视图,并使用_count作为reduce函数.您将获得所需的信息以及其他一些可能有价值的分析内容.这是"只是创建一个视图"的解决方案.

第二种可能性是使用redis(http://redis.io/commands/incr).Redis的是相当不错的,并会与这个用例(http://ai.mee.nu/is_couchdb_the_anti-redis)吻合.这将是"正确工作的正确工具"解决方案.

第三种可能性就是忽略它.它可能根本不是问题(如果你经常压缩).这将是"放松"的解决方案.

你必须把坏事带走,并确保优势超过劣势.在切割/优化之前测量所有内容两次.