iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Redis实现信息已读未读状态提示
  • 734
分享到

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

已读状态提示 2022-06-04 18:06:48 734人浏览 安东尼
摘要

本文为大家分享了Redis实现信息已读未读状态提示的关键代码,希望可以给大家一些启发,具体内容如下 前提: 假如现在有2个模块需要提示消息:只要存在用户在上个时间点之后没有看过的信息就提示用户有新的信息 思

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

前提:

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

思路如下:

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

上代码:


Map<String, String> dataMap = new HashMap<>();
 
Jedis jedis=null;
String uid="1";//用户id
//分类数组
String []caGoryArray={"c1","c2"};
try {
  //连接池获取连接 jedis=
  //此处获取用户的操作时间集合
  Map<String, 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){
    //归还连接
  }
}

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

您可能感兴趣的文档:

--结束END--

本文标题: Redis实现信息已读未读状态提示

本文链接: https://www.lsjlt.com/news/13161.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java怎么实现已读未读功能
    在Java中,可以通过以下几种方式实现已读未读功能:1. 使用数据库:创建一个数据表来存储每个用户的消息和阅读状态。表中的字段可以包...
    99+
    2023-08-08
    java
  • Android实现未读消息小红点显示实例
    目录代码实现小红点实现总结使用 fragmentLayout 实现,可以把小红点添加到任意 view 上。 效果 添加小红点到 textview 上 添加小红点到 imagevie...
    99+
    2024-04-02
  • MySQL中InnoDB事务锁阅读锁信息状态的示例分析
    这篇文章主要介绍了MySQL中InnoDB事务锁阅读锁信息状态的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 ...
    99+
    2024-04-02
  • mysql如何实现读已提交
    在 mysql 中实现读已提交隔离级别,可通过设置 repeatable read 或 read committed 级别。repeatable read 确保读取的数据在事务期间不会被...
    99+
    2024-04-14
    mysql
  • Android怎么实现未读消息小红点显示
    今天小编给大家分享一下Android怎么实现未读消息小红点显示的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。使用 fragm...
    99+
    2023-06-29
  • Android 实现 NFC 读取卡片信息
    效果图: 因为朋友需要个读取NFC卡片数据的功能,所以最近看了一下Android 系统下NFC 读取卡片信息的操作。 NFC(近距离无线通信 ) 是一组近距离无线技术,通常只有在距离不超过 ...
    99+
    2023-09-09
    android android studio ide Powered by 金山文档
  • 如何使用Python实现微信消息的一键已读功能
    这篇文章主要介绍了如何使用Python实现微信消息的一键已读功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。关键词微信消息一键已读 微信消息批量已读 微信消息全部已读1、微...
    99+
    2023-06-15
  • 前端与RabbitMQ实时消息推送未读消息小红点实现示例
    目录引言RabbitMQ 搭建1、开启 mqtt 协议服务端消息发送1、mqtt 客户端依赖包2、消息发送者前端消息订阅测试总结 引言 前几天粉丝群里有个小伙伴问过:web ...
    99+
    2024-04-02
  • py3nvml实现GPU相关信息读取的示例分析
    py3nvml实现GPU相关信息读取的示例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在深度学习或者其他类型的GPU运算过程中,对于GPU信息的监测也是一...
    99+
    2023-06-26
  • linux怎么实时显示进程状态信息
    在Linux系统中,可以使用top命令实时显示进程状态信息。具体操作步骤如下:1. 打开终端。2. 输入top命令并按下回车键。3....
    99+
    2023-08-18
    linux
  • Android 应用中怎么添加一个未读消息提示功能
    这篇文章将为大家详细讲解有关Android 应用中怎么添加一个未读消息提示功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。思路上似乎有两种: 1. 直接把底图和红圆圈的图片用相对...
    99+
    2023-05-31
    android roi
  • PyQt5 实现状态栏永久显示消息
    前言: 课程设计打算用qt和python做一个上位机,现在的需求是要在状态栏永久显示串口号、波特率。状态栏的自身的方法无法让信息长久保留,但是我们可以为状态栏永久添加小控件 QSta...
    99+
    2024-04-02
  • 怎么在Android应用中添加一个未读消息提示功能
    怎么在Android应用中添加一个未读消息提示功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。示例代码:public class LauncherBadgeH...
    99+
    2023-05-31
    android roi
  • layui如何实现信息提示框
    这篇文章主要介绍了layui如何实现信息提示框,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。   第一步:引用两个文件   第二步:点击...
    99+
    2024-04-02
  • Android利用Badge组件实现未读消息小红点
    目录前言Badge 组件实例总结前言 在 App 的运营中,活跃度是一个重要的指标,日活/月活……为了提高活跃度,就发明了小红点,然后让强迫症用户&ldq...
    99+
    2023-01-14
    Android Badge实现消息未读红点 Android 消息未读红点 Android Badge组件
  • android状态栏显示短信怎么实现
    要在Android的状态栏中显示短信,你需要创建一个BroadcastReceiver来接收短信,并在接收到短信时将其显示在状态栏上...
    99+
    2023-08-12
    android
  • javascript怎么实现删除提示信息
    这篇文章主要为大家展示了“javascript怎么实现删除提示信息”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“javascript怎么实现删除提示信息”这篇文章吧。在js中,可以使用confi...
    99+
    2023-06-15
  • java 实现读取 word 文件文字内容信息
    【需求】 最近项目中有一个需求,需要实现 java 读取上传的 word 文件的内容 【实现方法】 现有一文档内容如下: 实现代码如下: 引入依赖: org.apache.poi p...
    99+
    2023-09-24
    java word 后端
  • PyQt5怎么实现状态栏永久显示消息
    这篇文章将为大家详细讲解有关PyQt5怎么实现状态栏永久显示消息,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言:课程设计打算用qt和python做一个上位机,现在的需求是要在状态栏永久显示串口号、波特...
    99+
    2023-06-14
  • 怎么用nodejs实现在Marketing Cloud里读取contact信息
    这篇文章主要讲解了“怎么用nodejs实现在Marketing Cloud里读取contact信息”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用nodejs实现在Marketing C...
    99+
    2023-06-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作