Database 实时可扩展聊天应用程序-我应该选择哪个数据库?
我希望构建一个可扩展的实时聊天应用程序(我这样做只是为了好玩,出于兴趣,所以请不要问为什么!),我知道我将通过redis处理实时消息部分,但我不确定以下信息使用哪个数据库:Database 实时可扩展聊天应用程序-我应该选择哪个数据库?,database,mongodb,database-design,chat,Database,Mongodb,Database Design,Chat,我希望构建一个可扩展的实时聊天应用程序(我这样做只是为了好玩,出于兴趣,所以请不要问为什么!),我知道我将通过redis处理实时消息部分,但我不确定以下信息使用哪个数据库: 用户关系(朋友) 冷聊天历史记录-只能按时间戳顺序以有限数量(可能像50条消息)进行查询,并以相反的方式进行查询(就像滚动查看旧消息时在imessage或whatsapp中加载消息一样) 聊天用户关系 我知道在冷聊天历史中,RDBMS或Cassandra可能是我最好的选择,但在RDBMS或Cassandra中处理朋友关系
- 用户关系(朋友)
- 冷聊天历史记录-只能按时间戳顺序以有限数量(可能像50条消息)进行查询,并以相反的方式进行查询(就像滚动查看旧消息时在imessage或whatsapp中加载消息一样)
- 聊天用户关系
提前谢谢你 最好在房地产数据库中保持关系。 我在聊天应用程序中使用PostgreSQL实现这一目的 对于聊天记录和其他事件,Cassandra是一个不错的选择(我也使用Cassandra)。但是,这取决于您的数据库大小(记录数量)。如果你不需要为成千上万的用户保存成千上万的历史消息,那么使用Cassandra将是一种过分的做法。在这种情况下,还可以使用PostgreSQL或其他关系数据库。
在PostgreSQL中,您可以使用分区优化对历史记录表的访问。如果事务量不高,则可以使用PostgreSQL,否则Cassandra是满足所有上述要求的最佳选择。 在Cassandra中,为了实现低延迟和高可用性,应该有多个非规范化的表