【自问自答】在 IM 消息中如何使用缓存来降低服务端压力?

在 IM 消息中如何使用缓存来降低服务端压力?

客户端和服务端的方案都可以

本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。


回答:

缓存分为两部分,服务端缓存和客户端缓存。

服务端缓存比如说新用户入群,服务端可以提前预热新人的用户信息,也可以直接主动推送用户信息。

当然了,我是 Web 前端,所以主要介绍一下客户端这边缓存实现

  1. 缓存用户信息,分为三级 远端用户信息、本地用户信息、会话用户信息,比如说我们在群组里面会有自定义的名称,然后会有一份完整的本地用户信息。当我们不主动更新的时候,看的其实是历史的数据。只有主动点开头像,主动访问个人空间才会强制更新
  2. 缓存消息,所有消息都维护在客户端,及时拉取消息。所有的操作其实都是访问的本地数据库。
  3. 头像等图片,使用 cdn + 裁图。
  4. 收发消息使用聚合的方式。
  5. 维护视口,避免视口外资源触发请求。虚拟列表,懒加载等操作。
  6. 收集用户使用习惯,如屏蔽的群,就不主动拉取信息。如果是活跃的会话,及时拉取新用户信息,优化体验。
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。

以上是 【自问自答】在 IM 消息中如何使用缓存来降低服务端压力? 的全部内容, 来源链接: utcz.com/p/933857.html

回到顶部