c# mongodb存储最后N条聊天消息

本文关键字:聊天 消息 最后 mongodb 存储 | 更新日期: 2023-09-27 18:03:50

我正在设计(还没有写代码!)一个使用signalR的可扩展聊天应用程序。

我想限制聊天室文档(在mongodb中)存储最近100条消息。

为了做到这一点,我考虑以某种方式存储一个循环数组。我考虑过维护一个线程安全的索引,假设index,所以0 <= index <100,等等,在给定索引下更新数据库中的数组

现在,我有两个难题:

第一,要么在一些专门的文本文件中维护这个聊天,要么在mongodb中维护。

第二,假设我想向外扩展,在几个从属服务器上保持这个索引是最新的是无效的。

当我在这里谈到性能和效率时,我想把大部分的资源和时间花在用户加入聊天时,而不是花在他已经使用聊天时。

有什么想法或建议吗?

(我认为这不是一个开放的问题,因为我问了两个具体的问题,以及如何解决它们。)

TIA。

c# mongodb存储最后N条聊天消息

在我看来,您需要为此目的在一个特定的服务器上维护一个数据库,在用户登录时使用SELECT TOP 100,然后对每个用户进行每日(或每周)维护以DELETE ROWNUM>100。

就资源而言,如果您想拥有此功能,则需要专门分配资源。假设用户将从不同的设备登录,DB是唯一的方法。本地TXT文件将是特定于设备的