当我读到有关couchdb的消息时,我偶然发现了一个关于交易和couchdb的问题。显然,在沙发中处理事务的方法是提取最新版本并将其与您当前使用的版本进行比较。如果数据快速变化,这可能会出现问题。另一种方式是减少地图并将事务数据分成多个文档。这似乎也不是最佳的。
我正在考虑将redis用于此类数据。对于这种目的,增量和减量函数似乎相当惊人。
所以我可以为事务键写一些字符串,如:
//some user document
{
name: "guy",
id: 10,
page_views: "redis user:page_views:10"
}
然后,如果我在某些交易数据中读到类似“redis”的内容,那么我知道要从redis获取该信息。我想我可以事先决定这些事情,但是由于面向文档的数据库的主要任务是灵活而不是将数据绑定到列,我认为可能有更简单的方法吗?
有没有一种简单的方法可以将redis数据链接到couchdb?我是否应该手动完成所有这些操作以及出现的少数字段?还有其他想法吗?是否最好在用户文档中“最终”更新此交易数据,或者根本不将其存储在那里?
答案 0 :(得分:3)
Redis和CouchDB都很“简单”(即简单)。所以在这方面,你所描述的很容易。当然,通过使用两个数据库,您增加了应用程序的复杂性。但另一方面,CouchDB + Redis组合越来越受欢迎。
我认识的唯一可以整合两者的工具是Mikeal Rogers的redcouch。这是一个简单的工具。也许您可以扩展它以添加您需要的内容(并发送拉取请求!)。
更广泛的考虑因素是Redis没有CouchDB所做的完整复制功能集。所以Redis可能会限制您使用CouchDB的未来选择。具体而言,Redis不支持多主复制。与CouchDB相比,您将始终拥有一个集中式Redis数据库。 (如果我错了,请纠正我 - 我使用CouchDB比使用Redis更强。)