Java高并发秒杀视频学习笔记

大神学习视频:https://www.imooc.com/learn/632

学习笔记:

高并发秒杀延迟的真正原因:

               1.  java客户端与mysql交互的网络延迟,耗时1ms

               2.  java客户端GC(java垃圾回收),耗时50ms

而Mysql语句执行同一行(同一商品)的减库存update操作,耗时仅有0.025ms,即1秒可以卖4万个热点商品(4万qps),非同一商品,1秒可以卖40万个热点商品

优化方案: 不要在 java客户端控制事务,将事务操作放到Mysql端处理,以避免网络延迟和GC

详情看视频:https://www.imooc.com/video/11822

 

Mysql存储过程:

利用Mysql存储过程,实现事务行级锁持有时间,即在Mysql端事务处理避免网络延迟和GC

应用场景:仅限于简单固定的事务逻辑,不使用于互联网复杂的场景

详情看视频:https://www.imooc.com/video/11825

 

redis缓存优化实现步骤:

               1.  下载redis数据库,添加依赖jedis,在DAO层添加RedisDao

                2.  存储到redis:序列化java对象成为byte数组,存储在redis中

                     取出从redis:反序列化byte数组为java对象,在java客户端使用

                3.  dao层需要单元测试,先试着从redis中取,取不到再从数据库中取

提升Java序列化性能:使用protostuff工具(添加依赖)

详情看视频:https://www.imooc.com/video/11823

 

 

你可能感兴趣的:(Java,Redis,java)