主页 > 知识库 > Redis实现信息已读未读状态提示

Redis实现信息已读未读状态提示

热门标签:西藏教育智能外呼系统价格 太原营销外呼系统 百度商家地图标注怎么做 地图标注如何即时生效 地图标注费用 玄武湖地图标注 竹间科技AI电销机器人 最简单的百度地图标注 小红书怎么地图标注店

本文为大家分享了Redis实现信息已读未读状态提示的关键代码,希望可以给大家一些启发,具体内容如下

前提:

假如现在有2个模块需要提示消息:只要存在用户在上个时间点之后没有看过的信息就提示用户有新的信息

思路如下:

使用hash存储用户上次看过的时间,使用sortedset存储每个模块的每个信息产生的时间

上代码:

MapString, String> dataMap = new HashMap>();
 
Jedis jedis=null;
String uid="1";//用户id
//分类数组
String []cagoryArray={"c1","c2"};
try {
  //连接池获取连接 jedis=
  //此处获取用户的操作时间集合
  MapString, String> map = jedis.hgetAll("u-key-"+uid);
  if (map == null) {
    map = new HashMap>();
  }
  for (String value : cagoryArray) {
    //获取某个分类下的上次操作时间
    String s = map.get(value);
    if (StringUtils.isBlank(s)) {
      //如果不存在,则设为有新信息
      dataMap.put(value, "1");
    } else {
      //计算从上次操作时间到现在的新的信息数量
      Long zcount = jedis.zcount("c-key-"+value, Double.parseDouble(s), System.currentTimeMillis());
      if (zcount == null || zcount = 0) {
        //不存在或者小于等于0 则没有新的信息
        dataMap.put(value, "0");
      } else {
        dataMap.put(value, "1");
      }
    }
 
  }
 
}finally {
  if(jedis!=null){
    //归还连接
  }
}


当有新的信息产生,向相关模块添加时间:

Jedis jedis=null;
//c1模块有新的信息
String cid="c1";
 
try {
  //连接池获取连接 jedis=
 
  //添加到sortedset结果 权重为时间毫秒
  long currentTimeMillis = System.currentTimeMillis();
  jedis.zadd("c-key-"+cid, currentTimeMillis, String.valueOf(currentTimeMillis));
 
}finally {
  if(jedis!=null){
    //归还连接
  }
}

当用户点击某个模块时,更新用户查看该模块的上次时间:

Jedis jedis=null;
//c1模块有新的信息
String cid="c1";
//用户id
String uid="1";
 
try {
  //连接池获取连接 jedis=
 
  //添加到sortedset结果 权重为时间毫秒
  jedis.hset("u-key-"+uid, cid, String.valueOf(System.currentTimeMillis()));
 
}finally {
  if(jedis!=null){
    //归还连接
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助。

您可能感兴趣的文章:
  • Android实现获取未接来电和未读短信数量的方法
  • JS非Alert实现网页右下角“未读信息”效果弹窗
  • Android仿QQ滑动弹出菜单标记已读、未读消息

标签:扬州 澳门 林芝 香港 广东 景德镇 唐山 赣州

巨人网络通讯声明:本文标题《Redis实现信息已读未读状态提示》,本文关键词  Redis,实现,信息,已读,未读,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《Redis实现信息已读未读状态提示》相关的同类信息!
  • 本页收集关于Redis实现信息已读未读状态提示的相关信息资讯供网民参考!
  • 推荐文章