第五章 项目优化

本文详细介绍了项目优化中的技术点,如使用Git管理代码,利用SpringCache和Redis进行缓存,配置MySQL主从复制和读写分离,以及Nginx的部署和应用,涉及前后端分离开发、API文档生成和项目部署策略。
摘要由CSDN通过智能技术生成

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
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值