文章目录
- 开篇导读
- 项目地址
- 导入SQL
- 项目架构介绍
- 后端项目导入
- 前端项目导入
开篇导读
实战篇我们要学习以下内容
- 短信登录
这一块我们会使用redis共享session来实现
- 商户查询缓存
通过本章节,我们会理解缓存击穿,缓存穿透,缓存雪崩等问题,让小伙伴的对于这些概念的理解不仅仅是停留在概念上,更是能在代码中看到对应的内容
- 优惠卷秒杀
通过本章节,我们可以学会Redis的计数器功能, 结合Lua完成高性能的redis操作,同时学会Redis分布式锁的原理,包括Redis的三种消息队列
- 附近的商户
我们利用Redis的GEOHash来完成对于地理坐标的操作
- UV统计
主要是使用Redis来完成统计功能
- 用户签到
使用Redis的BitMap数据统计功能
- 好友关注
基于Set集合的关注、取消关注,共同关注等等功能,这一块知识咱们之前就讲过,这次我们在项目中来使用一下
- 打人探店
基于List来完成点赞列表的操作,同时基于SortedSet来完成点赞的排行榜功能
以上这些内容咱们统统都会给小伙伴们讲解清楚,让大家充分理解如何使用Redis
项目地址
我上传了一份备份在Gitcode上, 需要者自取
https://gitcode.net/Drifter_Galaxy/hmdp
导入SQL
运行项目的前置条件是已经安装好了Redis和MySQL服务并启动.
在Mysql中创建hmdp数据库, 导入hmdp.sql
MySQL数据库建议采用5.7及以上版本.
项目架构介绍
手机或者app端发起请求,请求我们的nginx服务器,nginx基于七层模型走的事HTTP协议,可以实现基于Lua直接绕开tomcat访问redis,也可以作为静态资源服务器,轻松扛下上万并发, 负载均衡到下游tomcat服务器,打散流量,我们都知道一台4核8G的tomcat,在优化和处理简单业务的加持下,大不了就处理1000左右的并发, 经过nginx的负载均衡分流后,利用集群支撑起整个项目,同时nginx在部署了前端项目后,更是可以做到动静分离,进一步降低tomcat服务的压力,这些功能都得靠nginx起作用,所以nginx是整个项目中重要的一环。
在tomcat支撑起并发流量后,我们如果让tomcat直接去访问Mysql,根据经验Mysql企业级服务器只要上点并发,一般是16或32 核心cpu,32 或64G内存,像企业级mysql加上固态硬盘能够支撑的并发,大概就是4000起~7000左右,上万并发, 瞬间就会让Mysql服务器的cpu,硬盘全部打满,容易崩溃,所以我们在高并发场景下,会选择使用mysql集群,同时为了进一步降低Mysql的压力,同时增加访问的性能,我们也会加入Redis,同时使用Redis集群使得Redis对外提供更好的服务。
后端项目导入
解压后用IDEA打开, 配置好MySQL和Redis的账号密码
运行HmDianPingApplication即可启动后端
启动成功的标志为浏览器访问http://localhost:8081/shop-type/list出现数据.
前端项目导入
将其复制到任意目录,要确保该目录不包含中文、特殊字符和空格:
运行nginx.exe
, 然后访问http://localhost:8080/即可看到页面.
至此 项目运行完成 ! ! !