瑞吉外卖项目优化---专注缓存优化

项目优化

项目示例:之前的瑞吉外卖

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缓存短信验证码和菜品数据

  • 13
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值