1

当我阅读关于 couchdb 的内容时,我偶然发现了一个关于事务和 couchdb 的问题。显然,在沙发上处理事务的方法是提取最新版本并将其与您当前使用的版本进行比较。如果数据快速变化,这可能会出现问题。另一种方法是 map reduce 并将事务数据分离到多个文档中。这似乎也不是最理想的。

我正在考虑将 redis 用于此类数据。对于这种目的,递增和递减函数似乎相当惊人。

所以我可以为事务键写一些字符串,比如:

//some user document
{
   name: "guy",
   id: 10,
   page_views: "redis user:page_views:10"
}

然后,如果我在一些事务数据中读到类似“redis”的内容,那么我就知道从 redis 获取该信息。我想我可以事先决定这些事情,但是由于面向文档的数据库的主要任务是灵活且不将数据绑定到列,我认为可能有更简单的方法?

有没有一种简单的方法可以将 redis 数据链接到 couchdb?我应该手动完成这一切并为出现的几个字段吗?还有其他想法吗?在用户文档中“最终”更新此事务数据还是干脆不将其存储在那里会更好吗?

4

1 回答 1

3

Redis 和 CouchDB 都“简单”(即简单)。所以在这方面,你所描述的很容易。当然,通过使用两个数据库,您增加了应用程序的复杂性。但另一方面,CouchDB+Redis 组合越来越受欢迎。

我所知道的将两者结合的唯一工具是 Mikeal Rogers 的redcouch。这是一个简单的工具。也许您可以扩展它以添加您需要的内容(并发送拉取请求!)。

更广泛的考虑是 Redis 没有 CouchDB 所具备的完整复制功能集。所以 Redis 可能会限制你未来使用 CouchDB 的选择。具体来说,Redis 不支持多主复制。与 CouchDB 相比,您将始终拥有一个集中式 Redis 数据库。(如果我错了,请纠正我——我使用 CouchDB 比使用 Redis 更强大。)

于 2012-05-28T00:42:34.447 回答