国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Redis > 正文

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

2020-10-28 21:39:23
字體:
供稿:網(wǎng)友

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

前提:

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

思路如下:

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

上代碼:

Map<String, String> dataMap = new HashMap<>(); Jedis jedis=null;String uid="1";//用戶id//分類數(shù)組String []cagoryArray={"c1","c2"};try {  //連接池獲取連接 jedis=  //此處獲取用戶的操作時(shí)間集合  Map<String, String> map = jedis.hgetAll("u-key-"+uid);  if (map == null) {    map = new HashMap<>();  }  for (String value : cagoryArray) {    //獲取某個(gè)分類下的上次操作時(shí)間    String s = map.get(value);    if (StringUtils.isBlank(s)) {      //如果不存在,則設(shè)為有新信息      dataMap.put(value, "1");    } else {      //計(jì)算從上次操作時(shí)間到現(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){    //歸還連接  }}


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

Jedis jedis=null;//c1模塊有新的信息String cid="c1"; try {  //連接池獲取連接 jedis=   //添加到sortedset結(jié)果 權(quán)重為時(shí)間毫秒  long currentTimeMillis = System.currentTimeMillis();  jedis.zadd("c-key-"+cid, currentTimeMillis, String.valueOf(currentTimeMillis)); }finally {  if(jedis!=null){    //歸還連接  }}

當(dāng)用戶點(diǎn)擊某個(gè)模塊時(shí),更新用戶查看該模塊的上次時(shí)間:

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

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 金门县| 湛江市| 改则县| 临潭县| 汤原县| 建始县| 聊城市| 定日县| 齐河县| 应用必备| 桐梓县| 大埔区| 都昌县| 鸡泽县| 宜黄县| 贵南县| 甘德县| 砚山县| 阳江市| 贵港市| 天门市| 邹平县| 高陵县| 大邑县| 电白县| 黔南| 汉川市| 苍南县| 蛟河市| 望谟县| 仁布县| 三穗县| 大新县| 黄大仙区| 西城区| 改则县| 靖州| 通江县| 滕州市| 襄汾县| 太康县|