目录
- Redis缓存菜品数据-业务逻辑分析
- 1. 需求
- 2. 需要考虑的问题
- 3. 缓存逻辑分析
- 4. 缓存流程图
Redis缓存菜品数据-业务逻辑分析
1. 需求
在菜品展示页面,用户点击每一个分类都会访问一次MySQL数据库数据,当大量用户使用发出大量请求时,会对MySQL数据库造成很大的压力,即读性能下降,用户端也会因为菜品信息加载速度慢导致程序使用体验差。
因此,对于这种频繁的查询数据,我们需要更高的性能,Redis数据库基于内存存储数据,读写性能很高,就可以用于缓存菜品数据。
2. 需要考虑的问题
- 什么类型的操作需要进行缓存?
- 如何保证Redis数据库和MySQL数据库的数据一致性?
3. 缓存逻辑分析
在用户端菜品展示页面,是根据每一个分类对菜品进行展示的,所以我们只需要当用户端根据分类id查询菜品信息的时候,对菜品信息进行缓存即可。
- 查询操作:当用户端发送根据分类id查询菜品信息的请求时,先查询Redis数据库里面有没有分类下的菜品信息,有则直接从Redis数据库里面取,没有则查询MySQL数据库,然后再将该分类下的菜品信息存入缓存里面,下次用户端再进行查询的时候,就可以直接从缓存里面读取菜皮信息。
- 更新操作:当后台管理端对菜品信息进行修改的时候,需要对缓存进行清理(该项目的策略是,考虑到修改操作的操作比较少,采取直接清空所有分类下的菜品信息缓存的方法)。
- 具体到修改菜品起售状态
- 菜品其它信息的修改
- 菜品信息批量删除操作:当后台管理端对菜品信息进行批量删除操作时,不同的菜品对应的分类可能不同,清理缓存数据需要做很多冗余代码的判断,该项目采取的策略也是直接清空菜品缓存数据。
- 添加操作:需要把添加的菜品的所属分类id下的缓存菜品信息,进行删除。
4. 缓存流程图
课程笔记