查询:redis还是mongodb?

查询:redis还是mongodb?,mongodb,performance,redis,nosql,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']} 我需要查询用户id和类型。我知道使用mongoDB很容易做到这一点。从我在互联网上发现的情况来看,使用Redis并不容易,因为它只适用于键/值

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

{user_id: 1, type: 'comment', content: [msg: 'bluhbluh', date: '2014-01-01']}
{user_id: 1, type: 'message', content: [msg: 'blahblah', date: '2014-01-01']}
我需要查询用户id和类型。我知道使用mongoDB很容易做到这一点。从我在互联网上发现的情况来看,使用Redis并不容易,因为它只适用于键/值

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


谢谢

最佳解决方案取决于队列的填充和使用方式以及消息的持久性

Redis支持pub/sub,如果您向员工发送通知,这可能会很有用。这将使您不需要一起查询数据存储

辅助场景的另一个选项是rabbitmq。这种方法可能会为您节省一些编写队列/工作者基础结构的时间


通常,使用发布子体系结构设置通知系统更容易,而且您可以选择多种方法。一个快速而简单的选择是使用,当然你还有很多其他选择


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

谢谢您的回答。我说通知的时候可能用得不对。我说的不是电话通知,而是当你有新消息时,更像是Facebook上的通知。我要去找Redis!谢谢你的回答!