哪个数据库用于聊天记录?

时间:2010-09-16 11:15:40

标签: sql mongodb cassandra redis nosql

我正在实施聊天系统。

我应该使用哪种数据库来记录聊天消息?

我需要对它进行一些查询。例如,“在这些日期之间给我用户x的所有链接”

我已经heard了一些关于MongoDB的好东西。其他NoSQL解决方案怎么样? Redis的?卡桑德拉?

旧的SQL解决方案怎么样?虽然我对使用NoSQL数据库的经历非常感兴趣,但我不打算这样做:)

我需要能够处理数百名活跃用户。

7 个答案:

答案 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 ,它很容易与网络应用,移动应用或桌面应用集成,而且重量轻。

检查http://www.sqlite.org/

如果数据很大,请考虑 NOSQL 数据库,例如

MongoDB http://www.mongodb.org/

HBase https://hbase.apache.org/

如果您熟悉Windows,请考虑 MYSQL MSSQL