1. 今天做了什么
外卖day7的一部分
- 缓存菜品
- 缓存套餐
2. 核心知识点
- 两种实现缓存的方式
- 使用Redis自己实现缓存
- 根据分类id查询菜品,将分类id作为key,将查询到的集合作为value
- 查询时先查缓存是否存在,存在直接返回,不存在则查询后存入缓存返回
- 一旦管理端发生新增,修改,删除,起售停售,都要对缓存进行清理
- 使用Spring Cache实现缓存
- 完全使用注解实现,很方便
- 在启动类使用注解进行开启
- 在相应查询接口上添加注解,实现查询时先查缓存是否存在,存在直接返回,不存在则查询后存入缓存返回
- 在管理端新增,修改,删除操作添加清除缓存的注解
- Spring Cache底层可以用多种方式实现,这里使用Redis,添加了Redis的依赖,可以自动识别
- 使用Redis自己实现缓存
3. 深度思考
- 为什么要做缓存
- 在业务执行过程中,数据库查询操作从磁盘读取数据,比较耗时
- 用户使用量比较大时加载较慢,影响使用体验
- 在Redis中做缓存,从内存中读取速度很快
4. 踩过的坑
- redisTemplate.delete()不支持通配符,redisTemplate.keys()支持,先查询keys,再删除
1 |
|
- Spring Cache的@CacheEvict注解,清除所有setmealcache的缓存:
1 |