在本项目中,哪些数据仅存储在MySQL,哪些数据存储在redis,哪些数据存储在本地缓存、nginx缓存?

来源:7-4 活动缓存库存方案一

zrfix

2020-09-04

平时听课没注意,但是面试过程中一问发现真的有问题,期待老师解惑,谢谢!

1. 哪些数据在redis和MySQL中都有?哪些数据只在MySQL中?

2. 项目从第6章开始其实并没有使用本地缓存和Nginx缓存,也没有讲本地缓存、nginx缓存与MySQL的最终一致性,只讲了redis与MySQL的最终一致性;所以,只是在第5章给我们演示了一下本地缓存与nginx缓存的效果吗?

——第5章讲到了本地缓存和nginx缓存,但是后面的章节都只讲了redis缓存与MySQL的一致性,而再也未提及本地热点缓存与nginx缓存;这是因为项目自从第6章开始只用到了redis缓存,而未用到本地缓存和nginx缓存吗?换句话说,老师只是演示了一下本地缓存和nginx缓存的效果,项目的后续过程其实并没有使用本地缓存和nginx缓存,而是只使用了redis缓存吗?

写回答

1回答

龙虾三少

2020-09-04

缓存和数据库是要配合使用,不同级别的缓存也有不同的用处,要根据业务场景去做不通的设计和确认,没有通用的解决方案,比如在商品这个场景里,数据肯定缓存和数据库中都得有,同时对应商品展示信息由于不用特别实时,所以可以加缓存,并且为了性能可以加多级缓存

0
4
Code_Deli
回复
龙虾三少
你好,多级缓存是缓存了itemModel,是用于read操作的,并且还要容忍一定的脏读现象。多级缓存包括redis,guavacache,shareddict。这些都是缓存了itemModel。后面还利用openresty缓存了静态页面 后面优化交易性能的时候redis还放入了用户的MODEL,ITEMMODEL是用于检验下单的。库存扣减操作也是在redis完成,因为redis又额外放入了stock字段。 我认为不使用之前guavacache 等缓存的原因是 不方便做缓存一致性处理 老师是这个意思吗
2021-07-04
共4条回复

聚焦Java性能优化 打造亿级流量秒杀系统(赠秒杀项目)

理解高流量电商网站性能构建思路 用高逼格技术解决性能提升问题

2174 学习 · 1009 问题

查看课程