返回顶部
首页 > 资讯 > 数据库 >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://lsjlt.com/news/13161.html(转载时请注明来源链接)

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

猜你喜欢
  • Redis实现信息已读未读状态提示
    本文为大家分享了Redis实现信息已读未读状态提示的关键代码,希望可以给大家一些启发,具体内容如下 前提: 假如现在有2个模块需要提示消息:只要存在用户在上个时间点之后没有看过的信息就提示用户有新的信息 思...
    99+
    2022-06-04
    已读 状态 提示
  • 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
  • 使用 Python 实现微信消息的一键已读的思路代码
    关键词 微信消息一键已读 微信消息批量已读 微信消息全部已读 1、微信消息怎么批量已读 2、微信消息可以一键已读吗 3、微信如何设置全部已读 目前支持 windows 微信 下载后双击运行即可 点击下载微信消息一键已...
    99+
    2022-06-02
    Python 微信一键已读 python微信消息
  • Android 应用中怎么添加一个未读消息提示功能
    这篇文章将为大家详细讲解有关Android 应用中怎么添加一个未读消息提示功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。思路上似乎有两种: 1. 直接把底图和红圆圈的图片用相对...
    99+
    2023-05-31
    android roi
  • 如何判断软件程序是否联网 联网状态提示信息Android实现
    在项目中,经常需要判断是否有网络连接。最近学习了如何判断软件是否联网,如果没有联网,弹出提示信息,连接网络。 效果: (1)联网情况下:   (2)不联网情况下: ...
    99+
    2022-06-06
    程序 软件 Android
  • PyQt5 实现状态栏永久显示消息
    前言: 课程设计打算用qt和python做一个上位机,现在的需求是要在状态栏永久显示串口号、波特率。状态栏的自身的方法无法让信息长久保留,但是我们可以为状态栏永久添加小控件 QSta...
    99+
    2024-04-02
  • 怎么在Android应用中添加一个未读消息提示功能
    怎么在Android应用中添加一个未读消息提示功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。示例代码:public class LauncherBadgeH...
    99+
    2023-05-31
    android roi
  • Android仿微信底部菜单栏功能显示未读消息数量
    底部菜单栏很重要,我看了一下很多应用软件都是用了底部菜单栏,这里使用了tabhost做了一种通用的(就是可以像微信那样显示未读消息数量的,虽然之前也做过但是layout下的xm...
    99+
    2022-06-06
    菜单 菜单栏 Android
  • Android利用Badge组件实现未读消息小红点
    目录前言Badge 组件实例总结前言 在 App 的运营中,活跃度是一个重要的指标,日活/月活……为了提高活跃度,就发明了小红点,然后让强迫症用户&ldq...
    99+
    2023-01-14
    Android Badge实现消息未读红点 Android 消息未读红点 Android Badge组件
  • layui如何实现信息提示框
    这篇文章主要介绍了layui如何实现信息提示框,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。   第一步:引用两个文件   第二步:点击...
    99+
    2024-04-02
  • android状态栏显示短信怎么实现
    要在Android的状态栏中显示短信,你需要创建一个BroadcastReceiver来接收短信,并在接收到短信时将其显示在状态栏上...
    99+
    2023-08-12
    android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作