一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫 - Redis - Redis實(shí)現(xiàn)信息已讀未讀狀態(tài)提示

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

2019-10-27 16:54Redis教程網(wǎng) Redis

這篇文章主要介紹了Redis實(shí)現(xiàn)信息已讀未讀狀態(tài)提示的相關(guān)資料,需要的朋友可以參考下

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

前提:

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

思路如下:

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

上代碼:

  1. Map<String, String> dataMap = new HashMap<>(); 
  2.    
  3. Jedis jedis=null
  4. String uid="1";//用戶id 
  5. //分類數(shù)組 
  6. String []cagoryArray={"c1","c2"}; 
  7. try { 
  8.   //連接池獲取連接 jedis= 
  9.   //此處獲取用戶的操作時(shí)間集合 
  10.   Map<String, String> map = jedis.hgetAll("u-key-"+uid); 
  11.   if (map == null) { 
  12.     map = new HashMap<>(); 
  13.   } 
  14.   for (String value : cagoryArray) { 
  15.     //獲取某個(gè)分類下的上次操作時(shí)間 
  16.     String s = map.get(value); 
  17.     if (StringUtils.isBlank(s)) { 
  18.       //如果不存在,則設(shè)為有新信息 
  19.       dataMap.put(value, "1"); 
  20.     } else { 
  21.       //計(jì)算從上次操作時(shí)間到現(xiàn)在的新的信息數(shù)量 
  22.       Long zcount = jedis.zcount("c-key-"+value, Double.parseDouble(s), System.currentTimeMillis()); 
  23.       if (zcount == null || zcount <= 0) { 
  24.         //不存在或者小于等于0 則沒有新的信息 
  25.         dataMap.put(value, "0"); 
  26.       } else { 
  27.         dataMap.put(value, "1"); 
  28.       } 
  29.     } 
  30.    
  31.   } 
  32.    
  33. }finally { 
  34.   if(jedis!=null){ 
  35.     //歸還連接 
  36.   } 

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

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

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

  1. Jedis jedis=null
  2. //c1模塊有新的信息 
  3. String cid="c1"
  4. //用戶id 
  5. String uid="1"
  6.    
  7. try { 
  8.   //連接池獲取連接 jedis= 
  9.    
  10.   //添加到sortedset結(jié)果 權(quán)重為時(shí)間毫秒 
  11.   jedis.hset("u-key-"+uid, cid, String.valueOf(System.currentTimeMillis())); 
  12.    
  13. }finally { 
  14.   if(jedis!=null){ 
  15.     //歸還連接 
  16.   } 

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

延伸 · 閱讀

精彩推薦
  • RedisRedis如何實(shí)現(xiàn)數(shù)據(jù)庫讀寫分離詳解

    Redis如何實(shí)現(xiàn)數(shù)據(jù)庫讀寫分離詳解

    Redis的主從架構(gòu),能幫助我們實(shí)現(xiàn)讀多,寫少的情況,下面這篇文章主要給大家介紹了關(guān)于Redis如何實(shí)現(xiàn)數(shù)據(jù)庫讀寫分離的相關(guān)資料,文中通過示例代碼介紹...

    羅兵漂流記6092019-11-11
  • Redisredis中如何使用lua腳本讓你的靈活性提高5個(gè)逼格詳解

    redis中如何使用lua腳本讓你的靈活性提高5個(gè)逼格詳解

    這篇文章主要給大家介紹了關(guān)于redis中如何使用lua腳本讓你的靈活性提高5個(gè)逼格的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具...

    一線碼農(nóng)5812019-11-18
  • RedisRedis全量復(fù)制與部分復(fù)制示例詳解

    Redis全量復(fù)制與部分復(fù)制示例詳解

    這篇文章主要給大家介紹了關(guān)于Redis全量復(fù)制與部分復(fù)制的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Redis爬蟲具有一定的參考學(xué)習(xí)...

    豆子先生5052019-11-27
  • Redisredis 交集、并集、差集的具體使用

    redis 交集、并集、差集的具體使用

    這篇文章主要介紹了redis 交集、并集、差集的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友...

    xiaojin21cen10152021-07-27
  • RedisRedis的配置、啟動(dòng)、操作和關(guān)閉方法

    Redis的配置、啟動(dòng)、操作和關(guān)閉方法

    今天小編就為大家分享一篇Redis的配置、啟動(dòng)、操作和關(guān)閉方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧 ...

    大道化簡5312019-11-14
  • Redisredis實(shí)現(xiàn)排行榜功能

    redis實(shí)現(xiàn)排行榜功能

    排行榜在很多地方都能使用到,redis的zset可以很方便地用來實(shí)現(xiàn)排行榜功能,本文就來簡單的介紹一下如何使用,具有一定的參考價(jià)值,感興趣的小伙伴們...

    乘月歸5022021-08-05
  • RedisRedis 事務(wù)知識點(diǎn)相關(guān)總結(jié)

    Redis 事務(wù)知識點(diǎn)相關(guān)總結(jié)

    這篇文章主要介紹了Redis 事務(wù)相關(guān)總結(jié),幫助大家更好的理解和學(xué)習(xí)使用Redis,感興趣的朋友可以了解下...

    AsiaYe8232021-07-28
  • Redis詳解Redis復(fù)制原理

    詳解Redis復(fù)制原理

    與大多數(shù)db一樣,Redis也提供了復(fù)制機(jī)制,以滿足故障恢復(fù)和負(fù)載均衡等需求。復(fù)制也是Redis高可用的基礎(chǔ),哨兵和集群都是建立在復(fù)制基礎(chǔ)上實(shí)現(xiàn)高可用的...

    李留廣10222021-08-09
主站蜘蛛池模板: chinaese中国女人厕所小便 | 男女被爆动漫羞羞动漫 | 9420高清视频在线观看网百度 | 高贵女王调奴vk | 天天综合五月天 | 久久国产综合精品欧美 | 美女的让男人桶爽免费看 | 国产在线欧美日韩精品一区二区 | 久久机热视频 这里只有精品首页 | 秘书在办公室疯狂被hd | 国产精品成人 | 性做久久久久久 | 91精品国产色综合久久不卡蜜 | 99久久伊人精品波多野结衣 | 亚洲色图.com | 无人知晓小说姜璟免费阅读 | 国产精品怡红院在线观看 | 精品精品国产自在现拍 | 亚洲成人网页 | 成人网欧美亚洲影视图片 | 国产精品自拍一区 | 好涨好大我快受不了了视频网 | 翁公与小莹在客厅激情 | 国产一区二区三区四卡 | 免费观看在线永久免费xx视频 | 男女啪啪gif | 四虎国产成人免费观看 | 天天色天天综合 | 国产成人久久精品推最新 | 好男人资源免费播放 | 国产精品成人在线播放 | 欧美同性猛男videos | 8x在线永久成人影院 | 久久99精品久久久久久园产越南 | 国产欧美日韩精品在线 | 亚洲色欲色欲综合网站 | 日本大尺度激情做爰叫床 | china国产bbw| 日本免费高清在线观看播放 | 91九色丨porny丨制服 | a级特黄毛片免费观看 |