最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Redis實現(xiàn)信息已讀未讀狀態(tài)提示

 更新時間:2016年04月15日 09:07:07   投稿:lijiao  
這篇文章主要介紹了Redis實現(xiàn)信息已讀未讀狀態(tài)提示的相關(guān)資料,需要的朋友可以參考下

本文為大家分享了Redis實現(xiàn)信息已讀未讀狀態(tài)提示的關(guān)鍵代碼,希望可以給大家一些啟發(fā),具體內(nèi)容如下

前提:

假如現(xiàn)在有2個模塊需要提示消息:只要存在用戶在上個時間點之后沒有看過的信息就提示用戶有新的信息

思路如下:

使用hash存儲用戶上次看過的時間,使用sortedset存儲每個模塊的每個信息產(chǎn)生的時間

上代碼:

Map<String, String> dataMap = new HashMap<>();
 
Jedis jedis=null;
String uid="1";//用戶id
//分類數(shù)組
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)) {
      //如果不存在,則設(shè)為有新信息
      dataMap.put(value, "1");
    } else {
      //計算從上次操作時間到現(xiàn)在的新的信息數(shù)量
      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){
    //歸還連接
  }
}


當有新的信息產(chǎn)生,向相關(guān)模塊添加時間:

Jedis jedis=null;
//c1模塊有新的信息
String cid="c1";
 
try {
  //連接池獲取連接 jedis=
 
  //添加到sortedset結(jié)果 權(quán)重為時間毫秒
  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結(jié)果 權(quán)重為時間毫秒
  jedis.hset("u-key-"+uid, cid, String.valueOf(System.currentTimeMillis()));
 
}finally {
  if(jedis!=null){
    //歸還連接
  }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助。

相關(guān)文章

  • Redis教程(九):主從復(fù)制配置實例

    Redis教程(九):主從復(fù)制配置實例

    這篇文章主要介紹了Redis教程(九):主從復(fù)制配置實例,本文講解了Redis的Replication、Replication的工作原理、如何配置Replication、應(yīng)用示例等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • Centos7 Redis主從搭建配置的實現(xiàn)

    Centos7 Redis主從搭建配置的實現(xiàn)

    這篇文章主要介紹了Centos7 Redis主從搭建配置的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • redis和redisson實現(xiàn)分布式鎖的操作方法

    redis和redisson實現(xiàn)分布式鎖的操作方法

    使用 Redis 實現(xiàn)分布式鎖,最直接的想法是利用 setnx 和 expire 命令實現(xiàn)加鎖,這篇文章主要介紹了redis和redisson實現(xiàn)分布式鎖的操作方法,需要的朋友可以參考下
    2024-03-03
  • redis實現(xiàn)動態(tài)字符串SDS

    redis實現(xiàn)動態(tài)字符串SDS

    簡單動態(tài)字符串是Redis的基本數(shù)據(jù)結(jié)構(gòu)之一,用于存儲字符串和整型數(shù)據(jù),本文主要介紹了redis實現(xiàn)動態(tài)字符串SDS,具有一定的參考價值,感興趣的可以了解一下
    2024-04-04
  • redis中隊列消息實現(xiàn)應(yīng)用解耦的方法

    redis中隊列消息實現(xiàn)應(yīng)用解耦的方法

    這篇文章主要給大家介紹了關(guān)于redis中隊列消息實現(xiàn)應(yīng)用解耦的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • redis慢查詢?nèi)罩镜脑L問和管理方式

    redis慢查詢?nèi)罩镜脑L問和管理方式

    這篇文章主要介紹了redis慢查詢?nèi)罩镜脑L問和管理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 虛擬機linux安裝redis實現(xiàn)過程解析

    虛擬機linux安裝redis實現(xiàn)過程解析

    這篇文章主要介紹了虛擬機linux安裝redis實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • 一文詳解Redis中的持久化

    一文詳解Redis中的持久化

    這篇文章主要介紹了一文詳解Redis中的持久化,持久化功能有效地避免因進程退出造成的數(shù)據(jù)丟失問題,當下次重啟時利用之前持久化的文件即可實現(xiàn)數(shù)據(jù)恢復(fù)
    2022-09-09
  • Redis?SortedSet數(shù)據(jù)類型及其常用命令總結(jié)

    Redis?SortedSet數(shù)據(jù)類型及其常用命令總結(jié)

    Redis的SortedSet是一個可排序的set集合,與Java中的TreeSet有些類似,但底層數(shù)據(jù)結(jié)構(gòu)卻差別很大,這篇文章主要介紹了Redis?SortedSet數(shù)據(jù)類型及其常用命令詳解,需要的朋友可以參考下
    2024-06-06
  • Redis熱點Key問題的完整解決方案:

    Redis熱點Key問題的完整解決方案:

    熱點Key就像雙十一爆款商品,1%的Key承擔了90%的流量!本文將用電商案例,教你如何智能分流、化解壓力,并通過代碼示例講解的非常詳細,需要的朋友可以參考下
    2025-08-08

最新評論

漳平市| 安平县| 天气| 习水县| 滦南县| 林西县| 海安县| 田林县| 双牌县| 榆中县| 偃师市| 汉源县| 上高县| 溧阳市| 齐齐哈尔市| 瓦房店市| 大埔区| 中卫市| 新龙县| 上饶市| 阿尔山市| 鹿泉市| 福海县| 宣武区| 南乐县| 周宁县| 肃北| 黎川县| 榆林市| 丽江市| 泗水县| 甘南县| 宜章县| 库尔勒市| 防城港市| 平顶山市| 东源县| 互助| 建昌县| 天门市| 天水市|