项目优化
项目示例:之前的瑞吉外卖
git项目管理步骤
为了方便管理优化的版本,使用git版本控制工具进行统一管理
1.创建远程仓库,复制地址
2.创建本地仓库,添加git支持
此时颜色会变红
3.将文件进行添加add
4.将文件进行提交commit
5.配置远程仓库,进行关联推送
如果推送过程被拒绝可以在命令行输入: git push -f origin master 进行强制推送
6.推送完成
master分支相当于我们项目的基础版本,因此我们最好是在其分支进行优化
------------------------------
1.创建分支
idea右下角即可创建分支,分支命名为v1.0
2.将分支v1.0推送到远程仓库
环境搭建
关于Redis Desktop Manager图形化管理工具的使用
在连接登陆的时候需要将redis服务进行启动才可以连接
maven坐标
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
配置文件
配置类
以上修改之后还需要进行推送至远程仓库
缓存短信验证码
实现思路
前面我们已经实现了手机验证码登录,随机生成的验证码我们是保存在HttpSession中的,
现在需要将改造的验证码缓存在redis中并设置过期时间,具体思路:
1.在服务端UserController中注入redisTemplate对象,用于操作redis
2.在服务端UserController中的sendMsg方法中,将随机生成的验证码缓存到redis中,设置有效期时间为5分钟
3.在服务端UserController中的login方法中,从redis中获取缓存的验证码,如果登录成功则删除redis中的验证码
缓存菜品数据
实现思路
安装菜品分类,分别去缓存
1.改造DishController的list方法,先从redis中获取菜品数据,如果有则返回,无需查询数据库,如果没有则查询数据库,并将查询到的数据放入redis
2.改造DishController的save和update方法,加入清理缓存的逻辑,保持数据的一致性
注意事项
代码实现
分析
redis缓存可以理解为,当第一个人来查菜品数据时,先从redis取缓存数据,如果没有,则查数据库,然后将取到的数据放入缓存中,后面的人再来查这个数据时,就直接返回缓存数据。并且,查菜品数据的逻辑是根据菜品分类id(categoryId)来缓存的,即每一个分类下的全部菜品为一个缓存数据。故key应为categoryId来以此区分(因为前端数据传过来的还有status(菜品状态)),故我们还需要进行categoryId+statue的字符串拼接来构成key
思路再次梳理(结合代码)
1.动态构造key(关键点)
每一个分类构造的key都不一样
2.尝试从缓存中获取key
3.如果缓存中存在对应数据
4.如果缓存中不存在对应数据
和之前的代码一样
5.设置缓存过期时间
6.清理缓存
根据前面的要求,我们需要清理save和update方法的缓存,防止数据出现不一致性
将代码推送至远程仓库
使用redis缓存短信验证码和菜品数据