zoukankan      html  css  js  c++  java
  • redis应用于基于时间顺序的数据操作 ,而不关注具体时间

    业务场景

    使用微信的过程中,当微信接收消息后,会默认将最近接收的消息置顶,当多个好友及关注的订阅号同时发送消息时,该排序会不停的进行交替。同时还可以将重要的会话设置为置顶。一旦用户离线后,再次打开微信时,消息该按照什么样的顺序显示?

    业务分析

    解决方案

    • 依赖list的数据具有顺序的特征对消息进行管理,将list结构作为栈使用
    • 对置顶与普通会话分别创建独立的list分别管理
    • 当某个list中接收到用户消息后,将消息发送方的id从list的一侧加入list(此处设定左侧)
    • 多个相同id发出的消息反复入栈会出现问题,在入栈前无论是否具有当前id对应的消息,先删除对应id
    • 推送消息时先推送置顶会话list,再推送普通会话list,推送完成的List清除所有数据
    • 消息的数量,也就是微信用户对话数量采用计数器的思想另行记录,伴随list操作同步更新


    Trips 17:

    • redis应用于基于时间顺序的数据操作 ,而不关注具体时间

  • 相关阅读:
    常见面试题1
    勒索病毒防范方法
    VMware虚拟机打开后不兼容
    win10桌面显示我的电脑设置
    scala集合和Java集合对应转换操作
    scala中使用redis
    爬虫调研
    hadoop命令
    IDEA打jar包
    spark.mllib
  • 原文地址:https://www.cnblogs.com/ifme/p/12315860.html
Copyright © 2011-2022 走看看