Redis实现信息已读未读状态提示

Redis实现信息已读未读状态提示
这篇文章的关键代码实现信息,读过Redis未读状态提示。我希望你能给你一些灵感。详情如下

前提:

如果现在有2个模块需要提示消息:只要有用户在上一个时间点之前没有看到的信息,它就会提示用户获得新的信息。

以下观点如下:

使用哈希表来存储用户上次看到的时间,并使用SortedSet存储通过各个模块每个模块生成的时间

上面的代码:
地图数据映射为新的HashMap <>();

绝地武士绝地武士= null;
字符串UID = 1 / / ID的用户;
分类/数组
字符串{ } caryarray = {C1
{试
/ /连接绝地武士=连接池
用户在这里的操作时间来获取/设置
地图地图= jedis.hgetall(U-Key -+用户名);
如果(map = NULL){
地图=新的HashMap <>();
}
对于(字符串值:caryarray){
最后一次得到分类操作
string s = map.get(价值);
如果(stringutils.isblank(S)){
如果它不存在,则设置为具有新信息。
DataMap.put(价值,1 );
{人}
从最后一次操作时间到现在计算新信息的数量
长zcount = jedis.zcount(升C键-+价值,double.parsedouble(S)、System.currentTimeMillis()));
如果(zcount = = null | | zcount <= 0){
不存在或小于或等于0,没有新信息。
DataMap.put(价值,0 );
{人}
DataMap.put(价值,1 );
}
}

}

{ }最后
如果(绝地武士!= NULL){
返回连接
}
}

生成新信息时,将时间添加到相关模块:
绝地武士绝地武士= null;
模块具有新的信息
字符串;

{试
/ /连接绝地武士=连接池

重量增加了SortedSet /毫秒的时间
长currentTimeMillis方法= System.currentTimeMillis();
Jedis.zadd(升C键-+ CID,currentTimeMillis方法,String.valueOf(currentTimeMillis方法));

{ }最后
如果(绝地武士!= NULL){
返回连接
}
}
当用户单击模块时,更新用户以查看模块的最后一次。
绝地武士绝地武士= null;
模块具有新的信息
字符串;
用户
字符串UID =1;

{试
/ /连接绝地武士=连接池

重量增加了SortedSet /毫秒的时间
jedis.hset(U-Key -+ UID,CID,string.valueof(system.currenttimemillis())));

{ }最后
如果(绝地武士!= NULL){
返回连接
}
}
以上是本文的全部内容,希望能对大家有所帮助。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部