node.js - 将 CouchDB 和 Redis 一起用于事务数据

标签 node.js couchdb redis

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

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

所以我可以为事务 key 编写某种字符串,例如:

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

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

有没有一种简单的方法可以将 redis 数据链接到 couchdb?对于出现的少数几个字段,我应该全部手动执行此操作吗?还有其他想法吗?在用户文档中“最终”更新此事务数据还是干脆不将其存储在那里会更好?

最佳答案

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

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

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

关于node.js - 将 CouchDB 和 Redis 一起用于事务数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10776630/

相关文章:

node.js - Heroku 找不到模块 'Sequelize'

node.js - 如何在 VSCode 中像打开另一个编辑器选项卡一样打开浏览器

python - asyncore 回调启动线程...可以吗?

node.js - Cloud9 IDE 上 Nodejs 中的 Redis : [Error: Auth error: undefined]

javascript - 如何使用 tampermonkey 在网页上加载外部脚本?

javascript - 等待的 promise 仍在返回 <pending>

javascript - 如何管理 CouchDB 代码出来呢?

couchdb - 在 couchdb 中编写/管理 View 的最佳方法是什么?

使用 Redis 过滤大型集合

redis - 如何以服务器端时间戳作为分数存储在Redis排序集中?