前言:

我们在开发中时常会遇到排行榜的小功能开发,基本实现的思路,要不就是在数据库利用order by排序,要不就是查出数据后在代码里进行排序,再或者就是利用redis的进行排序,今天这篇文章就简单的介绍下如何利用redis进行排序。

正文:

一、快速搭建springboot项目

按着下面一步一步的操作,就可以把项目快速的搭建起来。

点击Finish完后,项目到这里基本就搭建好了。

然后建议把Maven改成自己的仓库,当然这一步操不操作都可以。

然后这里我设置端口为8085,因为默认的端口8080与我本地其他的程序冲突了。

二、配置文件

pom的依赖:

 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><!-- lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><scope>provided</scope></dependency><!-- 集合工具类 --><dependency><groupId>commons-collections</groupId><artifactId>commons-collections</artifactId><version>3.2.2</version></dependency><!-- json --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.47</version></dependency>

application.yml的配置

server.port=8085
#配置Redis,redis的host是虚拟机服务器上的IP地址,端口6379
spring.redis.host=127.0.0.1
spring.redis.port=6379

三、新建一个controller,看看项目是否可以正常访问

项目运行起来过后再浏览器的地址栏输入http://localhost:8085/hello,效果如下

到这里说明项目搭建成功了,然后开始利用redis实现排名。

四、redis实现排行榜的代码

User类

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {private String name;private String sno;private double score;
}

controller层

@RestController
public class RedisController {@Autowiredprivate RedisTemplate<String,String> redisTemplate;@Autowiredprivate UserService userService;public static final String SCORE_RANK = "score_rank";@GetMapping("/hello")public String hello(){Set<ZSetOperations.TypedTuple<String>> tuples = new HashSet<>();List<User> users = userService.selectUserListAll();if(CollectionUtils.isNotEmpty(users)){for (User user:users) {DefaultTypedTuple<String> tuple = new DefaultTypedTuple<>(user.getName(), user.getScore());tuples.add(tuple);}}Long num = redisTemplate.opsForZSet().add(SCORE_RANK, tuples);Set<ZSetOperations.TypedTuple<String>> rangeWithScores = redisTemplate.opsForZSet().reverseRangeWithScores(SCORE_RANK, 0, 10);System.out.println("获取到的排行和分数列表:" + JSON.toJSONString(rangeWithScores));return JSON.toJSONString(rangeWithScores);}
}

service层

public interface UserService {List<User> selectUserListAll();
}

serviceimpl层

@Service
public class UserServiceImpl implements UserService {@Overridepublic List<User> selectUserListAll() {List<User> users = new ArrayList<>();User user1 = new User("阿达","1",88);User user2 = new User("阿港","2",90);User user3 = new User("阿硕","3",60);User user4 = new User("阿涂","4",78);User user5 = new User("阿俊","5",78);users.add(user1);users.add(user2);users.add(user3);users.add(user4);users.add(user5);return users;}
}

包的结构:

五、再次访问接口http://localhost:8085/hello,查看排序后的数据

注意:application.yml里的redis的配置,不是只要配置一下就行,这个要根据你真实连接redis的ip和端口设置。

server.port=8085
#配置Redis,redis的host是虚拟机服务器上的IP地址,端口6379
spring.redis.host=127.0.0.1
spring.redis.port=6379

总结:

就分享最近摘抄的一句话吧,一番风顺的叫活着,十有八九不如意的才是生活。啥叫硬汉,就是认清了生活的真相,还依然爱着它!哪怕再扯再累!莫怂,怂要是有用的话,我早就怂了。

希望今年大家可以比上一年的自己有所进步!

我是阿达,一名喜欢分享知识的程序员,时不时的也会荒腔走板的聊一聊电影、电视剧、音乐、漫画,这里已经有16522位小伙伴在等你们啦,感兴趣的就赶紧来点击关注我把,哪里有不明白或有不同观点的地方欢迎留言!

SpringBoot整合Redis实现排行榜功能相关推荐

  1. SpringBoot整合Redis实现购物车功能

    目录 项目介绍 开发配置 开发流程 购物车业务流程 开发流程 1.项目结构 2.数据层(DAO) 3.数据层(POJO.VO) 4.Redis配置层 5.服务层(Service) 6.控制层(Cont ...

  2. SpringBoot整合Redis 之 StringRedisTemplate、RedisTemplate 基础

    SpringBoot 整合 Redis 环境准备 引入依赖 配置文件 StringRedisTemplate 基本使用 Key 常用操作 String 常用操作 List 常用操作 Set 常用操作 ...

  3. SpringBoot整合Redis缓存

    SpringBoot整合Redis缓存 一.缓存概念知识 1.是什么缓存 2.缓存的优缺点 3.为什么使用缓存 二.Redis概念知识 1.Redis简介 2.为什么用Redis作为缓存 3.Redi ...

  4. Springboot整合redis(lettuce)

    springboot 整合redis(lettuce) 首先确保电脑上装了redis.最好能用redisDesktop查看一下数据情况 redis是一款非常流行的Nosql数据库.redis的功能非常 ...

  5. springboot整合redis,推荐整合和使用案例(2021版)

    背景:手下新人在初次使用springboot整合redis,大部分人习惯从网上检索到一份配置,然后不知其所以然的复制粘贴到项目中,网上搜索到的配置良莠不齐但又万变不离其宗.由于springboot最大 ...

  6. springboot整合redis实现分布式锁思想

    思路 所有响应获取锁的线程都先尝试往redis中创建一个缓存数据,所有线程的key必须相同.使用的是redis的setnx命令.就只有一个线程能够创建成功,创建成功的线程就成功获取锁. 没有获取锁的线 ...

  7. SpringBoot整合Redis - @Cacheable 和 RedisTemplate

    对之前网站做了一些很简单的优化,给用户列表加了一个分页功能. 分页就更好考虑加载速度,如果换一页就要等几秒,那体验感是非常差的. 因此想到了加一个redis缓存. springboot整合redis有 ...

  8. springboot整合redis案例——点赞取消点赞

    目录 springboot与缓存 JSR-107 Spring缓存抽象 重要概念和缓存注解 springboot整合redis 案例一:Redis是实现点赞.取消点赞 一.Redis 缓存设计及实现 ...

  9. SpringBoot整合redis实现发布订阅模式

    Redis的发布订阅模式 发布订阅(Pub/Sub):目前广泛使用的通信模型,它采用事件作为基本的通信机制,提供大规模系统所要求的松散耦合的交互模式:订阅者(如客户端)以事件订阅的方式表达出它有兴趣接 ...

  10. 商城项目(二)整合Redis实现缓存功能

    整合Redis实现缓存功能 环境搭建 Redis 版本:5.0.4 SpringBoot整合Redis 添加项目依赖 <!--redis依赖配置--> <dependency> ...

最新文章

  1. @apioperation 作用_石莲子的功效与作用分享
  2. 注意!你的 Navicat 可能被投毒了...
  3. 空间计量模型_Stata中的空间计量回归模型应用
  4. 独家 | 手把手教你推导决策树算法
  5. shell脚本批量追踪ip路由走向
  6. cherry-pick,revert和rebase使用的3-way合并策略
  7. cpu核心数的线程数
  8. git 重新关联远程仓库地址
  9. 一步步把SAP GUI的事务码配置到SAP Fiori Launchpad里
  10. Maven父子结构的项目依赖使用以及打包依赖_微服务项目(maven父子级项目)怎么打包
  11. 适合本科生的AI比赛目录
  12. 炒股应只做确定的上涨
  13. php 表单验证代码,php 表单验证实现代码
  14. MySQL数据类型详解
  15. FTP客户端搭建(linux环境)
  16. kafka集群搭建超详细教程
  17. 《软件工程之美》打卡第四周,2021最新Android面试真题解析
  18. Day10安卓 专高 day10 ContentProvider内容提供者
  19. regedit.msc
  20. 服务器故障英文邮件,全球邮

热门文章

  1. 如何查找office安装路径
  2. 两部苹果手机同步照片_如何将旧苹果手机音乐里面的歌曲同步到新苹果手机上...
  3. JavaScript中的eval函数
  4. 笔记本 安装服务器系统,笔记本电脑安装Windows Server 2016之我见
  5. 纽约大学Gary Marcus等撰文:人类思维对于AI的11个启示
  6. 高效c语言拧魔方算法,3阶魔方阵的算法
  7. CreateFile函数详解 不仅仅是对文件的操作 还有对系统设备的IO的操作
  8. 九爷带你玩转 oracle
  9. C语言每日一练——第12天:求一个矩阵的转置
  10. rap技术原理_学rap最基本的都要学什么