第五章 项目优化
- 1.内容介绍
- 2.使用git管理代码
- 3.环境搭建
- 4.缓存短信验证码
- 5.缓存菜品数据
- 6.缓存菜品数据-代码开发
- 7.清理缓存数据
- 8.推到git
- 9.spring cache框架
- 10.使用CachePut注解
- 11.使用cacheEvict注解
- 12.使用cacheable注解
- 13.使用Redis作为缓存技术
- 14.缓存套餐数据
- 15.将代码提交到git
- 16.本章内容介绍
- 17.MySQL主从复杂-介绍
- 18.配置主库Master &从库slave
- 19.测试
- 20.读写分离案例-读写分离背景说明&Sharding-JDBC介绍
- 21.入门案例
- 22.项目实现读写分离
- 23.Nginx
- 24.Nginx命令
- 25.nginx配置文件整体结构
- 26.NGINX具体应用-静态部署
- 27.NGINX具体应用-反向代理
- 28.NGINX具体应用-负载均衡
- 29.本章内容介绍
- 30.前后端分离开发
- 31.YApi
- 32.Swagger&使用方式&生成接口文档
- 33.Swagger常用注解
- 34.项目部署-部署架构和部署环境说明
- 35.部署前端项目
- 36.部署后端项目
1.内容介绍
2.使用git管理代码
先创建一个本地的仓库
上面的代码是基础部分
下面我们进行优化的时候
我们可以创建一个新的分支
下面我们将V1.0这个分支也给推送上去
下面我们对缓存的开发就在V1.0这个分支上进行
如果我们在1.0上面开发没有问题,我们就将其合并到我们的主分支
即master分支
3.环境搭建
4.缓存短信验证码
我们之前是将验证码放到session中进行保存的
现在我们可以将其放到Redis中进行保存
我们的login方法原先是从session中获取验证码
现在我们从Redis中获取
下面我们进行改造
缓存验证码
在login方法中取出验证码
我们的序列化器只修改了key,没有修改value
5.缓存菜品数据
6.缓存菜品数据-代码开发
先注入redisTemplate对象
7.清理缓存数据
有两种方案
一种是在更新后删除所有的Redis缓存
第二种是指删除对应分类对的缓存
第一种
第二种
8.推到git
下面将V1.0合并到master主分支上
先切回我们的主分支
然后合并
下面我们再切回我们V1.0继续更新其他的代码
9.spring cache框架
有了spring cache之后,我们就不用写缓存的代码了
直接加上注解,就可以帮我们实现缓存的功能
10.使用CachePut注解
我们这里使用springcache这个基础功能,只要导入spring web这个包即可
如果我们要使用Redis作为缓存
我们还需要导入下面这个包
这里的key可以为#result.id代表的就是方法的返回值的ID
11.使用cacheEvict注解
当我们删除数据中的一条数据时
我们缓存的数据也需要删除
我们在更新数据的时候也要清理缓存
12.使用cacheable注解
这里当我们的返回结果为null的时候,它同样会给我们缓存结果
我们需要做一个调整,加一个condition
只有在返回的结果不为空的时候,才缓存数据
13.使用Redis作为缓存技术
上面的缓存,底层是基于map实现的,缺点是当项目关闭后,缓存就不见了
下面我们用Redis作为缓存工具
唯一要变的就是下面的condition要变为result,其余的都不用变
因为condition是不能使用result的,只能用
Root和argument
14.缓存套餐数据
这里返回的结果R需要implement序列化接口,不然会报错
allEntries=true表示我们要清理setmealCache下所有的缓存数据
15.将代码提交到git
然后切换回master分支
合并
16.本章内容介绍
17.MySQL主从复杂-介绍
18.配置主库Master &从库slave
如果报错就执行下面的命令
19.测试
我们在主库创建一个数据库之后,从库也会有一个新的数据库
20.读写分离案例-读写分离背景说明&Sharding-JDBC介绍
21.入门案例
如果我们执行insert操作
就会走master库
如果我们执行select操作
就会走slave库
22.项目实现读写分离
在我们的项目中,我们先创建一个新的分支
23.Nginx
24.Nginx命令
每次启动NGINX都要写全路劲或者cd到对应的路劲之下
十分麻烦
我们可以将NGINX二进制文件的路径配置到系统的环境变量中
这样我们的NGINX的重新加载,关闭,启动都可以直接执行了
25.nginx配置文件整体结构
26.NGINX具体应用-静态部署
Index后面跟的是默认网页
我们可以进行修改
27.NGINX具体应用-反向代理
我们在101上面部署一个Java程序
上面的程序我们已经打成jar上传到101服务器了,并且已经运行
我们不通过反向代理服务器也可以直接访问到
下面我们配置反向代理服务器
28.NGINX具体应用-负载均衡
一般情况下
定义的一组服务器的ip肯定是不一样的
但这里我们的虚拟机数量有限
就定义了同一台服务器的不同端口
我们用的程序还是之前的那一个,只是改了一个端口号
并且已经上传到了101服务器
上面监听的端口就是8081
下面就是原先的8080
29.本章内容介绍
30.前后端分离开发
31.YApi
在运行这个界面
我们也可以进行测行,功能与postman十分相似
我们也可以将我们定义的接口导出
我们也可以导入数据
32.Swagger&使用方式&生成接口文档
也可以进行一些测试
Openapi就是导入到YApi的JSON文件
33.Swagger常用注解
我们加了上面的注解之后
34.项目部署-部署架构和部署环境说明
35.部署前端项目
将dist目录上传到服务器,dist是我们前端打包的内容
运行NGINX
36.部署后端项目
Sh脚本的作用是拉取git上面最新的
这里我们是没有这个脚本的执行权限的
执行以下的命令即可
我们项目中的图片是放在下面的路径的
但我们的Linux是没有下面这个路径的
我们的项目其实已经报错
我们可以看一下日记
所以我们要改造一下路径
然后将我们的图片放到Linux的路径下
然后将其推送到git