利用Redis
相关技术点实现商品热卖排行榜
redis
相关介绍
redis
是一个key-value
存储系统。和Memcached
类似,它支持存储的value
类型相对更多,包括string
(字符串)、list
(链表)、set
(集合)、zset
(sorted set
--有序集合)和hash
(哈希类型)。这些数据类型都支持push/pop
、add/remove
及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(
主从)同步。
Redis
是一个高性能的key-value
数据库。 redis
的出现,很大程度补偿了memcached
这类key/value
存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java
,C/C++
,C#
,PHP
,JavaScript
,Perl
,Object-C
,Python
,Ruby
,Erlang
等客户端,使用很方便.
今天我们来利用Redis
来实现一个大家在工作中都可能遇到的需求,热卖排行榜
话不多说开干!!!!!
- 需求说明
1、本次我们实现一个每日热卖商品排行榜的需求
2、简单的设计俩张表:goods(商品表)、sell(销售记录表)
3、主要是将当日热卖的商品查询出来,利用Redis
的有序集合进行大到小排序显示在前端页面
- 技术列表
Springboot 2.1.2.RELEASE
Redis
freemarker
mybatis-plus 3.2.0
hutool-all
搭建项目基础环境
- 首先我们来创建一个
springboot
项目,并且引入需要的依赖,后续需要的依赖后面用到在引入
所有的依赖如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!--mp-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
<!--代码生成器-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.2.0</version>
</dependency>
<!-- sql分析器 -->
<dependency>
<groupId>p6spy</groupId>
<artifactId>p6spy</artifactId>
<version>3.8.6</version>
</dependency>
<!-- commons-lang3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.9</version>
</dependency>
<!--工具类-->
<dependency>
<groupId>cn.hutool</groupId>