婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > Redis實(shí)現(xiàn)信息已讀未讀狀態(tài)提示

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

熱門(mén)標(biāo)簽:西藏教育智能外呼系統(tǒng)價(jià)格 太原營(yíng)銷(xiāo)外呼系統(tǒng) 百度商家地圖標(biāo)注怎么做 地圖標(biāo)注如何即時(shí)生效 地圖標(biāo)注費(fèi)用 玄武湖地圖標(biāo)注 竹間科技AI電銷(xiāo)機(jī)器人 最簡(jiǎn)單的百度地圖標(biāo)注 小紅書(shū)怎么地圖標(biāo)注店

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

前提:

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

思路如下:

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

上代碼:

MapString, String> dataMap = new HashMap>();
 
Jedis jedis=null;
String uid="1";//用戶id
//分類數(shù)組
String []cagoryArray={"c1","c2"};
try {
  //連接池獲取連接 jedis=
  //此處獲取用戶的操作時(shí)間集合
  MapString, 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 則沒(méi)有新的信息
        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";
//用戶id
String uid="1";
 
try {
  //連接池獲取連接 jedis=
 
  //添加到sortedset結(jié)果 權(quán)重為時(shí)間毫秒
  jedis.hset("u-key-"+uid, cid, String.valueOf(System.currentTimeMillis()));
 
}finally {
  if(jedis!=null){
    //歸還連接
  }
}

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

您可能感興趣的文章:
  • Android實(shí)現(xiàn)獲取未接來(lái)電和未讀短信數(shù)量的方法
  • JS非Alert實(shí)現(xiàn)網(wǎng)頁(yè)右下角“未讀信息”效果彈窗
  • Android仿QQ滑動(dòng)彈出菜單標(biāo)記已讀、未讀消息

標(biāo)簽:揚(yáng)州 澳門(mén) 林芝 香港 廣東 景德鎮(zhèn) 唐山 贛州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Redis實(shí)現(xiàn)信息已讀未讀狀態(tài)提示》,本文關(guān)鍵詞  Redis,實(shí)現(xiàn),信息,已讀,未讀,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Redis實(shí)現(xiàn)信息已讀未讀狀態(tài)提示》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Redis實(shí)現(xiàn)信息已讀未讀狀態(tài)提示的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 诸暨市| 塔城市| 岱山县| 图片| 井研县| 扎兰屯市| 河北省| 龙江县| 米泉市| 博野县| 鄱阳县| 贡嘎县| 延津县| 崇阳县| 手机| 行唐县| 德格县| 连城县| 红安县| 德昌县| 绵竹市| 长宁区| 新兴县| 正镶白旗| 佛山市| 昌图县| 襄汾县| 平原县| 鄂托克旗| 光山县| 宁武县| 逊克县| 定兴县| 开阳县| 镶黄旗| 壤塘县| 德江县| 岐山县| 安化县| 寿阳县| 武宁县|