websocket消息推送,如何实现不频繁查询数据库,还能将数据库中数据量实时更新到前端界面上?

问题描述:
目前有一个业务场景,是通过websocket来实现消息推送的,目前的做法是,每次接收到一条新的消息后,更新到数据库后,再通过查询数据库将数据库中符合该用户组的消息数量统计出来,并通过websocket推送到前端界面上,进行显示。现在的问题是,若在某一个时刻产生大量的新消息,每插入一条消息,均要对数据库进行查询消息总量,这样会对数据库产生很大的压力,鉴于这种情况下,该如何保证在不频繁查询数据库的情况下,还能保证前端界面上显示的消息总数和数据库保持一致呢?

数据库和websocket所在的应用层分离,websocket所在的应用层做分布式缓存

对于“若在某一个时刻产生大量的新消息,每插入一条消息,均要对数据库进行查询消息总量”能否等到所有消息插入完成后再统一进行统计呢?
或者消息总数直接在内存中不要入库。