为了账号安全,请及时绑定邮箱和手机立即绑定

最赞回答 / 春天的雪
我的理解是,缓存在redis上的seckill对象是旧的。因为其他人的秒杀行为会把数据库中的number减少,而redis上缓存的number没有改变。超时就是,一定时间后,redis上这个seckill被销毁,再次查询时就会从数据库直接拿,并且把这个拿到的最新seckill存入redis。

最赞回答 / 精慕门6287748
在执行return语句之前会执行finally语句,这个是正常的。参考https://www.cnblogs.com/jzsz/p/7860502.html

最新回答 / 最爱Saber
哈哈,益军老师的mac本是顶配的,可能是机器配置差距导致的吧。不过一般服务器性能肯定要好于自己的pc的,这个英国不是问题。

最赞回答 / study_workSpace
使用互斥锁(mutex key) ;简单点讲就是类似“锁”的机制,在缓存更新或者过期的情况下,先获取锁,在进行更新或者从数据库中获取数据后,再释放锁,需要一定的时间等待,就可以从缓存中继续获取数据String get(String key){    String value = redis.get(key);    if(value == null){        if(redis.setnx(key_Mutex),"1"){            redis.expire(key_mutex,3*...

最新回答 / 慕姐2563689
看一下mysql数据库引擎 mysql 的innodb引擎就支持行级锁 

已采纳回答 / AlphaSmartGo
project expoler -> your project(right click) ->maven ->update project

最新回答 / 慕函数1174211
我也碰到这个错误,请问解决了吗?

已采纳回答 / qq_逆时针_1
优点:1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。  2.当对数据库进行复杂操作时(如对多个表进行 Update,Insert,Query,Delete 时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。这些操作,如果用程序来完成,就变成了一条条的 SQL 语句,可能要多次连接数据库。而换成存储,只需要连接一次数据库就可以了。  3.存储过程可以重复使用,可减少数据库开发人员的...

最新回答 / 慕粉3606827
你是用多个手机号测试的吗?测试的是哪个接口?我是用一个手机号拼出的接口测试的,不知道这样的效果真不真实,所以想请教下。

已采纳回答 / 暴躁程序员
你这样当然是可行的,只不过在前面加上个类型标识拓展性高一点,可能未来会有其他类型的数据也需要存到redis缓存呢
课程须知
《Java高并发秒杀API》是系列课程,共四门课,分别为业务分析和DAO层,Service层,Web层和高并发优化。本门课程是第二门课程,学习前需要了解如下知识: 1、精通JavaWeb基础 2、熟悉SpringMVC、Spring和MyBatis框架 3、了解事务和存储过程的概念
老师告诉你能学到什么?
1、掌握秒杀业务 2、能够进行SpringMVC+Spring+MyBatis的整合开发 3、能够对秒杀业务的瓶颈有所了解 4、能够实现对秒杀业务的优化

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消