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

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

1.添加依赖

org.springframework.boot

spring-boot-starter-data-redis

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 list = new ArrayList<>();

/** 从小到大排序 返回value 和 score* 参数注释 key 为有序集合的key,1,50 是分数范围 1-50,0 是偏移量即从哪条数据开始排序, 5是取5条满足条件的数据*/

Set> set = redisTemplate.opsForZSet().rangeByScoreWithScores(key,1,50,0,5);

Iterator> iterator = set.iterator();

while (iterator.hasNext()){

ZSetOperations.TypedTuple 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排行榜内容请搜索聚米学院以前的文章或继续浏览下面的相关文章希望大家以后多多支持聚米学院!

Java zset 应用_Java简单使用redis-zset实现排行榜相关推荐

  1. redis java 缓存服务器_java中对Redis的缓存进行操作

    Redis 是一个NoSQL数据库,也是一个高性能的key-value数据库.一般我们在做Java项目的时候,通常会了加快查询效率,减少和数据库的连接次数,我们都会在代码中加入缓存功能.Redis的高 ...

  2. java可视化日历_Java简单可视化日历程序

    涉及知识: 一.Date类 在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理.这里简单 ...

  3. java正则表达式爬虫_Java简单爬虫系列(3)---正则表达式和Java正则API的使用

    上一篇内容写了如何请求资源,那么资源请求下载之后我们就要对它就行解析了,解析之前我们先熟悉一下正则表达式 正则表达式在平常使用时还是很广泛的,比如说表单输入验证,验证手机号邮箱之类,Java的字符串匹 ...

  4. java swing 示例_JAVA简单Swing图形界面应用演示样例

    JAVA简单Swing图形界面应用演示样例 package org.rui.hello; import javax.swing.JFrame; /** * 简单的swing窗体 * @author l ...

  5. java 高效加减乘除_java简单加减乘除

    展开全部 使用BigDecimal并且一定要e68a84e8a2ad3231313335323631343130323136353331333361303564用String来够造. 实现方法如下: ...

  6. java五子棋教程_java 简单五子棋

    1.需求分析 无论我们使用什么语言,去编写一个什么样的项目,我们的第一步,总是去分析这个项目需要满足怎样的需求. 五子棋需要满足什么需求呢,首先我们要有确定打算下棋的界面,还要有实现下棋的功能,下了棋 ...

  7. java .z文件_Java简单的读写文件

    这篇随笔记录了简单的文件输入与输出,是我在学习<Java核心技术卷Ⅰ>第61页到第62页时的一些整理.只用到了极简单的方法. 文件读取 要想对文件进行读取,就需要用一个File对象构造一个 ...

  8. java socket程序_java 简单的java socket程序

    //服务器端:ServerDemo.java import java.io.DataInputStream; import java.io.DataOutputStream; import java. ...

  9. java socket 路由_JAVA简单的Socket网络编程!CS

    好久没写socket代码了,也忘了八九成了--话不多说!直接上代码吧! Server服务 package test1; import java.io.*; import java.net.*; pub ...

最新文章

  1. 图像HSV和RGB的相互转换
  2. 能量分析攻击day01
  3. jQuery解决高度统一问题
  4. 天地图之定位信息详解
  5. 使用Source Monitor检测Java代码的环复杂度
  6. 【动态规划】方格取数 (ssl 1010)
  7. 实时数仓入门训练营:基于 Apache Flink + Hologres 的实时推荐系统架构解析
  8. (软件工程复习核心重点)第五章详细设计习题
  9. QT 线程池 + TCP 小试(三)实现最终功能
  10. bzoj 2152 聪聪可可
  11. a 算法 c语言实现,a最短路径算法地C语言实现.PDF
  12. DSP 程序远程升级 / Bootloader设计指南(六)—— 9大关键点
  13. pycharm隐藏窗口
  14. pyTest官方手册(Release 4.2)之蹩脚翻译(2)
  15. 屏蔽去除CSDN上图片轮播形式的百度推广广告-20190104更新
  16. 弘辽科技:拼多多转化率怎么看?4个步骤教会你
  17. 美图手机怎么投屏到电脑
  18. java ftp文件大小_java如何获得ftp服务器上指定文件的大小
  19. win10蓝牙功能无法打开的解决办法
  20. VMware vSphere的相关知识

热门文章

  1. 塑云科技基于 KafKa+OTS+MaxCompute 完成物联网系统技术重构
  2. 读懂这本书,才算读懂阿里大数据
  3. 阿里巴巴在内蒙古旱区试水物联网灌溉技术,一年省出1.5个西湖
  4. DRDS SQL 审计与分析——全面洞察 SQL 之利器
  5. 京信通信:数据智能为生产调试“增效瘦身”
  6. 梁胜:开源是最好的商业模式
  7. 一文读懂Docker及其对系统管理员的重要性
  8. 云评测 | 开发者最有用的开源云监控工具有哪些呢? 这7款神器总有一款适合你!...
  9. 上周五,小编参加了一场高大上的“9”会
  10. 01let和const