缓存商品、购物车
缓存菜品
(1)问题说明
如果用户量访问量比较大,数据库访问压力随之增大
(2)实现思路
通过redis缓存菜品数据,减少数据库查询操作
缓存逻辑分析:
- 每个分类下的菜品保存一份缓存数据
- 数据库中菜品数据有变更时(新增菜品、修改菜品、批量删除菜品、起售停售菜品)清理缓存数据
(3)代码开发
(4)功能测试
缓存套餐
(1)Spring Cache
Spring Cache是一个框架,实现了基于注解的缓存功能,只需简单地加一个注解,就能实现缓存功能
Spring Cache提供了一层抽象,底层可以切换不同的缓存实现,例如:
- EHCache
- Caffeine
- Redis
常用注解:
- EnableCaching 开启缓存注解功能,通常加在启动类上
- Cacheable 在方法执行前先查询缓存中是否有数据,如果有数据,则直接返回缓存数据;如果没有缓存数据,调用方法并将方法返回值放到缓存中
- CachePut 将方法的返回值放到缓存中
- CacheEvict 将一条或多条数据从缓存中删除
(2)实现思路
- 导入相关maven坐标
- 启动类加上@EnableCaching注解,开启缓存注解功能
- 在用户端接口SetmealController的list方法加上@Cacheable的注解
- 在管理接口SetmealController的save、delete、update、startOrStop等方法上加入CacheEvict注解
(3)代码开发
(4)功能测试
添加购物车
- 判断当前加入带购物车中的商品是否已经存在了
- 如果已经存在了,只需要将数量加一
- 如果不存在,需要插入一条购物车数据
查看购物车
(1)需求分析和设计
(2)代码开发
(3)功能测试