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项目,并且引入需要的依赖,后续需要的依赖后面用到在引入
所有的依赖如下:
org.springframework.boot
spring-boot-starter-data-redis
org.springframework.boot
spring-boot-starter-freemarker
org.springframework.boot
spring-boot-starter-web
mysql
mysql-connector-java
runtime
org.projectlombok
lombok
true
com.baomidou
mybatis-plus-boot-starter
3.2.0
com.baomidou
mybatis-plus-generator
3.2.0
p6spy
p6spy
3.8.6
org.apache.commons
commons-lang3
3.9
cn.hutool
hutool-all
4.1.17
由于我们项目用到的模本引擎是freemarker下面简单的介绍一下这个模版引擎
FreeMarker是一款模板引擎:即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、配置文件、源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件.
能够很方便的对后端的数据进行渲染
敲黑板重点!!FreeMarker的宏:宏是在模板中使用macro指令定义
宏是和某个变量关联的模板片断,以便在模板中通过用户定义指令使用该变量。
大白话:就是提高前端的代码的重用
如下是本项目中用到的FreeMarker的宏
${title}layui.cache.page = '';
layui.cache.user = {
username: '游客'
,uid: -1
,avatar: '../res/images/avatar/00.jpg'
,experience: 83
,sex: '男'
};
layui.config({
version: "3.0.0"