加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

Java架构之Redis系列:通过文章点赞排名案例学习Sortedset命令

发布时间:2019-08-31 10:18:25 所属栏目:建站 来源:老詹啊
导读:前言 这一篇文章将讲述Redis中的sortedset类型命令,同样也是通过demo来讲述,其他部分这里就不在赘述了。 案例 demo功能是文章点赞排名等等,整个demo的大致页面如下。 准备工作 首先定义一个存储文章的key privatestaticfinalStringZSET_KEY=articleList

redis客户端执行的命令如下

  1. zadd zScoreKey 1 one 
  2.  
  3. ZSCORE zScoreKey one 

下面是java代码

  1. @Test 
  2.  
  3. public void zScore() { 
  4.  
  5. jedis.zadd("zScoreKey",1, "one"); 
  6.  
  7. System.out.println(jedis.zscore("zScoreKey", "one")); 
  8.  
  9. System.out.println(zSetOperations.score("zScoreKey", "one")); 
  10.  

获取成员

Java架构之redis系列:通过文章点赞排名案例学习sortedset命令

ZRANGEBYLEX命令

返回指定成员区间内的成员,按成员字典正序排序。

https://redis.io/commands/zrangebylex

ZRANGEBYLEX key min max [LIMIT offset count]

返回值:指定成员范围的元素列表。

redis客户端执行的命令如下

  1. ZADD zRangeByLexKey 0 ba 0 a 0 ab 0 aa 0 b 
  2.  
  3. ZRANGEBYLEX zRangeByLexKey - + 
  4.  
  5. ZRANGEBYLEX zRangeByLexKey [aa (ba 

执行结果如下

Java架构之redis系列:通过文章点赞排名案例学习sortedset命令

下面是java代码

  1. @Test 
  2.  
  3. public void zRangeByLex() { 
  4.  
  5. zSetOperations.add("zRangeByLexKey", "ba", 0); 
  6.  
  7. zSetOperations.add("zRangeByLexKey", "a", 0); 
  8.  
  9. zSetOperations.add("zRangeByLexKey", "ab", 0); 
  10.  
  11. zSetOperations.add("zRangeByLexKey", "aa", 0); 
  12.  
  13. zSetOperations.add("zRangeByLexKey", "b", 0); 
  14.  
  15. System.out.println(jedis.zrangeByLex("zRangeByLexKey", "-", "+")); 
  16.  
  17. RedisZSetCommands.Range range = new RedisZSetCommands.Range(); 
  18.  
  19. range.gte("aa"); 
  20.  
  21. range.lt("ba"); 
  22.  
  23. System.out.println(zSetOperations.rangeByLex("zRangeByLexKey",range)); 
  24.  

ZRANGEBYSCORE命令

获取score在范围之内的数据。min和max可以是-inf和+inf

ZRANGEBYSCORE key min max [WITHSCORES]``[LIMIT offset count]

redis客户端执行的命令如下

  1. ZADD zRangeByScoreKey 1 ba 2 a 3 ab 4 aa 5 b 
  2.  
  3. ZRANGEBYSCORE zRangeByScoreKey -inf +inf 
  4.  
  5. ZRANGEBYSCORE zRangeByScoreKey 2 4 

执行结果如下

Java架构之redis系列:通过文章点赞排名案例学习sortedset命令

下面是java代码

  1. @Test 
  2.  
  3. public void zRangeByScore() { 
  4.  
  5. zSetOperations.add("zRangeByScoreKey", "ba", 1); 
  6.  
  7. zSetOperations.add("zRangeByScoreKey", "a", 2); 
  8.  
  9. zSetOperations.add("zRangeByScoreKey", "ab", 3); 
  10.  
  11. zSetOperations.add("zRangeByScoreKey", "aa", 4); 
  12.  
  13. zSetOperations.add("zRangeByScoreKey", "b", 5); 
  14.  
  15. System.out.println(jedis.zrangeByScore("zRangeByScoreKey", "-inf", "+inf")); 
  16.  
  17. RedisZSetCommands.Range range = new RedisZSetCommands.Range(); 
  18.  
  19. System.out.println(zSetOperations.rangeByScore("zRangeByScoreKey", 2, 4)); 
  20.  

移除相关命令

Java架构之redis系列:通过文章点赞排名案例学习sortedset命令

ZREM命令

ZREM key member [member ...]

返回值:有序集合中删除的成员个数

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读