问题:假设用户三万个人,每个群五百个人, 每个人所在3个群左右,每人每天在群里发送10条消息,如果用户不在线的情况,如何保存每个用户所在的群聊的未读消息数量,以便用户登录后查看未读数量
方案一:针对与每个用户通过redis对每个群聊标记数量,这样一个用户发消息,就需要给很多人进行标记
方案二:对每个用户离开群聊时间进行标记,用户登录后,用离开群聊时间和当前登录时间进行查询这个时间区间的消息数量
希望大佬给点设计思路,非常感谢!
问题:假设用户三万个人,每个群五百个人, 每个人所在3个群左右,每人每天在群里发送10条消息,如果用户不在线的情况,如何保存每个用户所在的群聊的未读消息数量,以便用户登录后查看未读数量
方案一:针对与每个用户通过redis对每个群聊标记数量,这样一个用户发消息,就需要给很多人进行标记
方案二:对每个用户离开群聊时间进行标记,用户登录后,用离开群聊时间和当前登录时间进行查询这个时间区间的消息数量
希望大佬给点设计思路,非常感谢!
27 回答13k 阅读
6 回答2.3k 阅读✓ 已解决
8 回答3.5k 阅读✓ 已解决
3 回答3.7k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
5 回答5.3k 阅读✓ 已解决
4 回答1.6k 阅读✓ 已解决
都可以,怎么方便怎么来。
对于第一种,两三万人,平均每个人有10个群,也才30万条数据,存redis没啥大压力。
对于第二种,也需要进行标记的,需要标记时间,其实意思都差不多。
我感觉你的顾虑是怕需要很多内存来存,花很多钱,既然你要做这个功能,那么肯定是能赚钱的,不然做这个功能没啥意义。那么你就要算一下这个功能需要购买redis服务器的开销占比收益的多少了,不能光从技术角度思考,还要从经济角度思考。