简单使用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排行榜内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2020-12-15

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

  1. Java利用键盘接收来做简单的题目

    利用键盘接收来做简单的题目 键盘接收:其实意思就是你想要的值在输出窗口,用键盘输入进去,输入进去的字符都是以绿色显示. 首先要调用 import java.util.Scanner; 然后在main方 ...

  2. java jsp中的日历表_JAVA简单的日历程序

    JAVA简单的日历程序 作者:未知    文章来源:www.jspcn.net 发布日期:2005年01月19日 /**以下是日历的代码程序 有疑问 回信 ycj@18e.net **/ //Cale ...

  3. java利用子类求正方形_Java程序设计实验2011

    (2)掌握对象的声明和使用: (3)掌握构造方法的概念和使用: (4)掌握类及成员的访问控制符. 2.实验任务 (1)阅读下面的程序,在main()方法里添加语句完成如下的功能: ①创建一个MyV a ...

  4. java中怎么引用圆周率_Java简单计算圆周率完整示例

    本文实例讲述了java简单计算圆周率.分享给大家供大家参考,具体如下: 这两天在网上看到一个题,已知pi可以用函数4 * (1 – 1/3 + 1/5 – 1/7 + -) 计算,计算出小数点后五位( ...

  5. java实现分页打印功能_Java简单高效实现分页功能

    今天想说的就是能够在我们操作数据库的时候更简单的更高效的实现,现成的crud接口直接调用,方便快捷,不用再写复杂的sql,带吗简单易懂,话不多说上方法 1.utils.java工具类中的方法 /** ...

  6. java类农夫过河问题_Java简单实现农夫过河问题示例

    本文实例讲述了Java简单实现农夫过河问题.分享给大家供大家参考,具体如下: 一.问题描述 老伯伯要带鱼.狗.猫过河到对岸.,有一条船,只能坐一个人,老伯每次只能带一样动物过河,当老伯不在的时侯狗会咬 ...

  7. java飞机大战背景图片_Java简单飞机大战(1)

    在完成了多线程小球之后,就可以写一个飞机大战小游戏了,虽然比较简单,但玩起来还是有一点乐趣的.下面就讲一下我的大概思路和一些实现步骤. 一开始当然要想好一个框架,毕竟框架还是很重要的.当点击开始按钮的 ...

  8. java飞机大战分数显示_Java简单飞机大战(2)

    上一篇飞机大战文章差不多介绍了简单的飞机大战的实现,剩下要做的就是添加一个分数排行榜和计分器.计分器十分简单,画一个字符串Score,然后显示当前获得的分数即可.既然是排行榜,当然是要记录前几名的分数 ...

  9. java图形用户登录界面_Java简单登录图形界面

    一.登录界面 1.程序代码 1 import java.awt.*;//导入awt包 2 import javax.swing.*;//导入swing包 3 import java.awt.event ...

最新文章

  1. linux查看mongo表大小,MongoDB_mongodb 查看数据库和表大小,1,查看数据库db.stats() - phpStudy...
  2. python入门之函数调用第一关_零基础学习 Python 之与函数的初次相见
  3. leetcode 148. Sort List | 148. 排序链表(最优解归并排序,O(1)空间)
  4. 设计模式--动态代理
  5. Element.prototype.addDependent will call addAggregation
  6. 部署:持续集成(CI)与持续交付(CD)——《微服务设计》读书笔记
  7. 使用绝对布局的方法创建一个登录密码验证的简易窗口
  8. 苹果系统安装python环境_如何在mac下配置python虚拟环境
  9. android mp4语音识别,怎样用语音识别将一段视频转化为文字, 比如:百度的语音识别api...
  10. 微信朋友圈八月十大谣言:洗澡先洗头会晕倒在浴室
  11. 信息服务器 iis 5.0,使用IIS 5.0调整Web服务器的艺术与科学(4)
  12. 小毛thinking:why c# sucks and python rocks
  13. Scala类型系统(sudden thought)
  14. UVa 10286 - Trouble with a Pentagon
  15. 关于等价鞅、反等价鞅、剀利公式、赌徒输光定理(非常有启发意义)
  16. java拨号上网,Android实现pppoe拨号上网(二)具体步骤
  17. python数据分析师前景及待遇怎么样_数据分析师未来五年发展前景怎么样?
  18. Java算术右移和逻辑右移
  19. 人工智能在医学影像中的研究与应用
  20. Windows 11如何使用IE浏览器

热门文章

  1. OSChina 周日乱弹 —— 在宅的路上越走越远。。。
  2. 图形数据库、NOSQL和Neo4j
  3. 抽象方法和虚方法的区别 [C#]
  4. 每首歌都保存着一份记忆
  5. (转)EF三种编程方式详细图文教程(C#+EF)之Database First
  6. Slimer软工课设日报-2016年6月30日
  7. Hadoop MapReduce InputFormat基础
  8. 推荐几个手机网站在线预览测试工具
  9. 使用Struts2开发Java Web应用程序(目录)
  10. 快捷关闭win8中的应用页面---解决方法