(秒杀项目) 4.7 缓存商品与用户

一、缓存商品

本项目中在商品缓存用到了二级缓存、本地缓存使用guava、服务器缓存用redis缓存。
使用guava缓存要先导入guava的依赖。

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>27.0.1-jre</version>
</dependency>

商品详情接口使用了缓存优化。

商品详情接口处理器
由代码可以看出、以前是通过直接查数据库的findItemById方法改成了findItemInCache从缓存里数据的方法。
在这里插入图片描述商品详情的service
先在service初始化时先初始化本地cache
在这里插入图片描述

由service代码可知、分为了三步。

  1. 先去guava本地缓存中去看是否有数据,有直接从缓存中取数据,然后直接返回。没有就下一步
  2. 假如guava本地缓存中没有数据就去redis中找看有没有,有就直接取到存带guava中然后再返回,没有就下一步
  3. 假如本地和redis一二级缓存都没有数据、才去数据库中查查到了就放到本地guava缓存和redis缓存中方便下次取,提高效率。最后返回

在这里插入图片描述

二、缓存用户

缓存用户使用的一级缓存、直接用redis缓存、原因是本地缓存一般存的是热度很高的数据的、而用户数据会有很多并且登录了会有一大半用户已经离开了,所以再使用本地缓存是没有必要的。直接使用redis就可以了。

service代码
由代码可知会先去redis中找有没有数据、有直接从redis中拿、没有就直接查数据库然后存到redis再返回。
在这里插入图片描述

三、总结

使用redis做缓存对经常访问并且不经常变的数据的查询可以大大提高网页的访问效率。
这一节面试常问的问题有redis的持久化有哪些种类,在面试是重点一定要掌握,理解并用自己的话能说出来。
还有分布式缓存的八股文也要理解并熟记。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值