c# mongodb存储最后N条聊天消息
本文关键字:聊天 消息 最后 mongodb 存储 | 更新日期: 2023-09-27 18:03:50
我正在设计(还没有写代码!)一个使用signalR的可扩展聊天应用程序。
我想限制聊天室文档(在mongodb中)存储最近100条消息。
为了做到这一点,我考虑以某种方式存储一个循环数组。我考虑过维护一个线程安全的索引,假设index,所以0 <= index <100,等等,在给定索引下更新数据库中的数组
现在,我有两个难题:
第一,要么在一些专门的文本文件中维护这个聊天,要么在mongodb中维护。
第二,假设我想向外扩展,在几个从属服务器上保持这个索引是最新的是无效的。
当我在这里谈到性能和效率时,我想把大部分的资源和时间花在用户加入聊天时,而不是花在他已经使用聊天时。
有什么想法或建议吗?
(我认为这不是一个开放的问题,因为我问了两个具体的问题,以及如何解决它们。)
TIA。
在我看来,您需要为此目的在一个特定的服务器上维护一个数据库,在用户登录时使用SELECT TOP 100,然后对每个用户进行每日(或每周)维护以DELETE ROWNUM>100。
就资源而言,如果您想拥有此功能,则需要专门分配资源。假设用户将从不同的设备登录,DB是唯一的方法。本地TXT文件将是特定于设备的