mongodb - 查询 : redis or mongodb?

标签 mongodb performance redis nosql

我想建立一个通知系统。 它们看起来像这样:

{user_id: 1, type: 'comment', content: [msg: 'bluhbluh', date: '2014-01-01']}
{user_id: 1, type: 'message', content: [msg: 'blahblah', date: '2014-01-01']}

我需要查询 user_id 和类型。我知道使用 mongoDB 很容易做到。根据我在 Internet 上的发现,使用 Redis 并不容易,因为它仅适用于键/值。

你知道有没有办法用 Redis 实现这个,它是否比 mongoDB 有更好的性能。

谢谢

最佳答案

通常情况下,使用发布-订阅架构设置通知系统会更容易,而且您有多种选择。一种快速而简单的选择是使用 zeromq pub-sub pattern当然,您还有许多其他选择。

现在,redis 与 mongodb 主要取决于您希望数据的持久性以及您所寻找的查询引擎的复杂程度。如果通知主要存储在内存中并且消耗速度足够快,那么 Redis 是一个很好的解决方案。您可以通过构造串联键(例如:type.user_id)并对排序集进行某种前缀搜索来解决键值限制。如果您希望数据持久化并期望将来有复杂的查询模型,Mongodb 会更好。

关于mongodb - 查询 : redis or mongodb?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21386986/

相关文章:

javascript - Mongoose 中嵌套查询执行的问题

MongoDB 搜索 "null"是否比搜索 "does not exist"更快?

mongodb - 如何使用 MongoDB 在 Go 中聚合过去一小时内创建的数据?

angularjs - 如何在聚合 MongoDB 中设置 'cursor' 选项

java - 使用 ByteBuffer 在 channel 上进行 I/O 操作 - 性能比较

.net - 如何让 SignalR 订阅 Redis channel ?

ios - Swift 数组性能问题?

java - 抛出 Java 异常时是否生成堆栈跟踪?

database - 在redis中存储和查询时间间隔数据

redis - Redis 镜像目前是否可以在 Windows 上与 Docker 一起使用?