|
1、本项目从抽象到实现阐述了如何利用redis实现分布式锁,完成简单的秒杀功能
' b5 y2 T' w2 h* t( X2、项目主要用到的redis锁的概念
9 |- v/ \6 B) @' a$ u6 F: E秒杀中需要考虑的问题点:
% b& ~: @- H4 G3 s5 W2 i B! a) n1、既然有并发问题,那我就让他“不并发”,将所有的线程用一个队列管理起来,使之变成串行操作,自然不会有并发问题。, |. m: d* p$ o& z! o0 Y
2、秒杀在技术层面的抽象应该就是一个方法,在这个方法里可能的操作是将商品库存-1,将商品加入用户的购物车等等,在不考虑缓存的情况下应该是要操作数据库的。那么最简单直接的实现就是在这个方法上加上synchronized关键字,通俗的讲就是锁住整个方法;
- ^9 S. b; V9 {9 p3 t' D* h3、锁住整个方法这个策略简单方便,但是似乎有点粗暴。可以稍微优化一下,只锁住秒杀的代码块,比如写数据库的部分;
% _. O% z' n3 w* |+ l% |! ~
- S% J* S8 n- H. j# a7 l+ n
2 _+ N* N* y% j百度网盘下载地址链接(百度云):java自学网(javazx.com)redisframework-master.rar 密码回帖可见! r. W& V1 s8 {6 S
* c# M. o3 X2 w8 o; O( f( I% L- E |
|