qq_慕斯卡2065924
生气的凯罗尔
jmeter
qq_邪炎_0
我理解的是这两种方式都创建的是空对象,只是schema.newMessage()底层使用的反射创建,在这儿直接new也可
REVERL
不会,减库存是通过mysql事务控制的,并且判断了num>0.
蓝牧轲
https://github.com/MinheZ/seckill
格林王子举哥
格林王子举哥
在linux上安装好redis,然后在项目里配置好IP、port等redis的参数,代码中使用jedis调用
你的花花我的草草
按道理说应该不会是空的,Redis.getSeckill和打印seckill之间和有什么语句?
慕哥4102554
redis可以设置过期时间
一般来说往redis设置值(set)的时候会对这个key设置一个过期时间
设置过期时间有两种方法,一种是倒计时,一种是时间戳。具体怎么设置可以上redis官网查询
过期时间到了,这个key就值就被置空。用户获取出来的是空值,这时候按照视频说的就会去数据库获取新的信息
耀阳2018
视频有说啊,删掉当前redis数据新建一条新的数据
慕粉3606827
Redis缓存的不是库存信息,而是秒杀暴露的IP地址,某一个商品的IP的不变的。
qq_Sebtimental丶_23564747
我的理解是,缓存在redis上的seckill对象是旧的。因为其他人的秒杀行为会把数据库中的number减少,而redis上缓存的number没有改变。超时就是,一定时间后,redis上这个seckill被销毁,再次查询时就会从数据库直接拿,并且把这个拿到的最新seckill存入redis。
qq_Sebtimental丶_23564747
可以,写简历上都没问题。
牙膏牙膏牙膏
在执行return语句之前会执行finally语句,这个是正常的。参考https://www.cnblogs.com/jzsz/p/7860502.html
牙膏牙膏牙膏
其实这个可以加也可以不加,加了规范些吧
dengcl
使用互斥锁(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*60);//防止死锁 value = db.get(key); redis.set(key,value); resdis.delete(key_Mutex); }else{ Thread.sleep(50); get(key); } } }
high天空
看一下mysql数据库引擎 mysql 的innodb引擎就支持行级锁
牙膏牙膏牙膏
project expoler -> your project(right click) ->maven ->update project
魄弹兽
你这样当然是可行的,只不过在前面加上个类型标识拓展性高一点,可能未来会有其他类型的数据也需要存到redis缓存呢
小木头3621739
这是设置商品信息的缓存 无所谓
慕妹6361977
me too
慕容9198694
因为老师用的mac
F145A
远程服务器防火前的端口没有释放
慕标6228646
慕仙5230688
同学,你好。你要保证你的redis已经正确安装了哦。正确安装了之后,还要启动redis服务才可以的呐。希望能帮到你!
慕粉3287026
紫_羽
秋田君
我来给你解释:
第一,通过jedis 储存对象有大概三种,one:本课程的序列化成byte字节 ,最终存byte字节,two:对象转hashmap,也就是你想表达的hash的形式,最终存map,three:对象转json,最终存json,其实也就是字符串
第二:其实如果你是平常的项目,并发不高,三个选择都可以,反而你说的hash的形式更加灵活,可以对象的单个属性,但是来了,秒杀的场景的情况下,三者的效率差别很大的
第三:结果如下
10w数据 时间 内存占用
存json 10s 14M
存byte 6s 6M
存jsonMap 10s 20M
存byteMap 4s 4M
取json 7s
取byte 4s
取jsonmap 7s
取bytemap 4s
第四:你该说了,bytemap最快啊,为啥不用啊,因为作者用了超级强悍的序列化工具啊,以上测试基于java的序列化,如果改了序列化工具,你可以测试下。
因本人能力有限,以上可能有谬论,恳请指正
风轻羽落
我也是Windows 10 我这边是好的,redis用的是Widows 版.(Redis-x64-3.2.100)
你用的是什么redis?? 你这个错误信息看不出来那里出错了. 贴报错的红色信息
慕桂英1450421
看书 看书 看书