Java简单使用redis-zset实现排行榜

 更新时间:2020年12月16日 11:52:46   作者:weixin_45121508  
这篇文章主要介绍了Java简单使用redis-zset实现排行榜,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

简单使用redis-zset实现排行榜

此方法实现一个根据某字段的查询次数进行排行,查询的次数越多排行越前(从大到小排序),适用于初学者

1.添加依赖

 <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-redis</artifactId>
  </dependency>

 2.注入RedisTemplate方法

@Autowired
public RedisTemplate redisTemplate;

3.创建对象,用来接收redis数据

@Data
public class RangeVo implements Serializable {

 private String shopName;

 private Double shopPrice;
 
}

4.添加十条redis数据

 @Test
 public void getzset4(){

  String keyModel = "testList";
  for (int i = 0; i < 10 ; i++) {
   int score = new Random().nextInt(50);
   String ss = "shop"+i;
   redisTemplate.opsForZSet().add(keyModel,ss,score);
  }
 }

5.根据某个key查询并每次查询score都会加1

@Test
 public void setOneValue(){
  String keyModel = "testList";
  String ss = "shop8";

  Double aDouble = redisTemplate.opsForZSet().incrementScore(keyModel, ss, 1);

  System.out.println(aDouble);
 }

6.查询redis中所有数据,zset会根据score自动排序

@Test
 public void getList(){

  String key = "testList";

  List<RangeVo> list = new ArrayList<>();
  /** 从小到大排序 返回value 和 score* 参数注释 key 为有序集合的key,1,50 是分数范围 1-50,0 是偏移量即从哪条数据开始排序, 5是取5条满足条件的数据*/
  Set<ZSetOperations.TypedTuple<Object>> set = redisTemplate.opsForZSet().rangeByScoreWithScores(key,1,50,0,5);
  Iterator<ZSetOperations.TypedTuple<Object>> iterator = set.iterator();
  while (iterator.hasNext()){
   ZSetOperations.TypedTuple<Object> next = iterator.next();
   RangeVo rangeVo = new RangeVo();
   rangeVo.setShopName((String) next.getValue());
   rangeVo.setShopPrice(next.getScore());
   list.add(rangeVo);
  }

  System.out.println(list);
 }

到此这篇关于Java简单使用redis-zset实现排行榜的文章就介绍到这了,更多相关redis-zset排行榜内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • IDEA 单元测试覆盖技巧分享

    IDEA 单元测试覆盖技巧分享

    这篇文章主要介绍了IDEA 单元测试覆盖技巧分享,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • Java WindowBuilder 安装及基本使用的教程

    Java WindowBuilder 安装及基本使用的教程

    这篇文章主要介绍了Java WindowBuilder 安装及基本使用的教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • springcloud连接远程nacos失败显示localhost服务连接失败的问题解决

    springcloud连接远程nacos失败显示localhost服务连接失败的问题解决

    这篇文章主要介绍了springcloud连接远程nacos失败显示localhost服务连接失败的问题解决,文中有详细的代码示例供大家参考,对大家解决问题有一定的帮助,需要的朋友可以参考下
    2024-03-03
  • Java中的动态代理使用

    Java中的动态代理使用

    这篇文章主要介绍了Java中的动态代理使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • 为SpringBoot服务添加HTTPS证书的方法

    为SpringBoot服务添加HTTPS证书的方法

    这篇文章主要介绍了为SpringBoot服务添加HTTPS证书的方法,帮助大家更好的理解和使用springBoot框架,感兴趣的朋友可以了解下
    2020-10-10
  • Java连接合并2个数组(Array)的5种方法例子

    Java连接合并2个数组(Array)的5种方法例子

    最近在写代码时遇到了需要合并两个数组的需求,突然发现以前没用过,于是研究了一下合并数组的方式,这篇文章主要给大家介绍了关于Java连接合并2个数组(Array)的5种方法,需要的朋友可以参考下
    2023-12-12
  • JAVA进阶篇之详细了解File文件的常用API

    JAVA进阶篇之详细了解File文件的常用API

    这篇文章主要给大家介绍了关于JAVA进阶篇之详细了解File文件的常用API的相关资料,File用于表示文件系统中的一个文件或目录,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • Java实现接月饼小游戏的示例代码

    Java实现接月饼小游戏的示例代码

    本文将用Java语言自制一个小游戏:《接月饼小游戏》,游戏规则为不要被月亮砸到,尽可能地多接月饼。文中的实现代码讲解清晰,感兴趣的可以动手试一试
    2022-02-02
  • MyBatis实现多表联合查询resultType的返回值

    MyBatis实现多表联合查询resultType的返回值

    这篇文章主要介绍了MyBatis多表联合查询resultType的返回值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Java生成word文档的示例详解

    Java生成word文档的示例详解

    这篇文章主要为大家详细介绍了如何利用Java语言生成word文档,文中的示例代码讲解详细,具有一定的借鉴价值,需要的小伙伴可以参考一下
    2022-12-12

最新评论