我正在实施聊天系统。
我应该使用哪种数据库来记录聊天消息?
我需要对它进行一些查询。例如,“在这些日期之间给我用户x的所有链接”
我已经heard了一些关于MongoDB的好东西。其他NoSQL解决方案怎么样? Redis的?卡桑德拉?
旧的SQL解决方案怎么样?虽然我对使用NoSQL数据库的经历非常感兴趣,但我不打算这样做:)
我需要能够处理数百名活跃用户。
答案 0 :(得分:2)
确定。所以基本上NoSQL并不是灵丹妙药。你真的必须知道每个NoSQL的最佳位置才能获得最大的好处。
对于您的场景,我会推荐mongodb。为什么?因为mongodb提供了非常丰富的查询,就像在SQL数据库中一样,与键值存储数据库不同。 Mongodb在写入和读取方面都相对较快。
除非你需要像facebook或twitter这样的大规模可扩展性,否则cassandra不适合你。
答案 1 :(得分:1)
我过去曾使用SQLite进行此类日志记录,但这是一种享受。
答案 2 :(得分:0)
我认为你不是谷歌或推特;)只是使用mysql,sqlite或任何关系数据库。这对你来说应该是完全足够的,但如果没有,那就考虑一下nosql解决方案,而不是现在。
答案 3 :(得分:0)
我推荐像 CouchDB 这样的文档存储。看看一些NoSQL解决方案here。
答案 4 :(得分:0)
我建议Cassandra。我觉得开发比MySQL更容易,尽管有一点学习曲线。处理模式更改对于使用MYSQL,IMO的生产环境来说是一个真正的痛苦。
答案 5 :(得分:0)
我的投票结果是redis(+节点)。我可以轻松处理这种规模。
答案 6 :(得分:0)
您可以通过以下方式确定:
如果您的数据简单而小巧,您可以考虑使用 SQLite ,它很容易与网络应用,移动应用或桌面应用集成,而且重量轻。
如果数据很大,请考虑 NOSQL 数据库,例如
MongoDB http://www.mongodb.org/
或
HBase https://hbase.apache.org/
如果您熟悉Windows,请考虑 MYSQL 或 MSSQL