栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

redis项目应用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

redis项目应用

用list进行消息推送

文旅号 (相当于公众号):
用户关注文旅号,存set里,文旅号为key,用户ID为值,用户登录进去的列表是所有文旅号都显示,会显示是否已关注,用文旅号ID和用户ID到set里执行是否存在的命令就能标识是否关注,文旅号会在后台创建消息并且发布,发布时往关注该文旅号的用户都增加一条消息,往redis的hash里存用户id为key:消息Id为域,消息是否已读为域的值, 每个用户都执行一条增加hash执行命令(redis速度很快,是微秒级别的,除非关注该文旅号的是千万级别的,如果怕性能有影响,可以先发给在线用户,非在线用户等空闲在发),

hash存消息发布标识是否已读

2.当文旅号从后台发布消息时,到set里取数据
//取关注该文旅号的用户ID
Set source_id = jedisCluster.smembers(“文旅号_id”);
for(String s:source_id){
System.out.println(s);
}

3.取出的用户ID 和消息ID 和 是否已读 存到hash
hset user_id msg_id 0/1。(具体的消息是存在数据库中)
格式:hset key field value
将哈希表 key 中的域 field 的值设为 value 。
如果 key 不存在,一个新的哈希表被创建并进行 HSET 操作。
如果域 field 已经存在于哈希表中,旧值将被覆盖。
消息已读重新hset就好,因为会被覆盖

用set进行点赞,收藏,用户关注文旅号

//点赞key为资源ID,值为用户ID,一个资源ID对应多个用户ID的点赞或收藏

   jedisCluster.sadd("source_id","user_1");

//查询该资源有多少个用户点赞

  Set source_id = jedisCluster.smembers("source_id");
        for(String s:source_id){
            System.out.println(s);
        }
int size = source_id.size(); //该资源 点赞总数
 //查询该用户有没有点赞或收藏
  //如果 user_2 元素是集合的成员,返回 true,否则返回false. 在页面上就能知道该用户有没有对该资源点过赞
  Boolean user_2 = jedisCluster.sismember("source_id","user_2");
   //取消点赞 
jedisCluster.srem("source_id","user_1");
用户关注文旅号:

以文旅号ID为key, value是用户ID

   jedisCluster.sadd("文旅号_id","user_1");

//查询该用户有没有关注该文旅号:

//存在返回true,否则返回False
 Boolean user_2 = jedisCluster.sismember("文旅号_id","user_2");

//取消关注:

jedisCluster.srem("source_id","user_1");

//对资源进行浏览量加1,用Spring类型的incr,值不存在也没关系。
格式:incr key
将 key 中储存的数字值增一。
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作
jedisCluster.incr(“source_id”);

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/755502.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号