简介:基于Redis实现分布式锁的几种坑
- 实现分布式锁 可以用 Redis、Zookeeper、Mysql数据库这几种 , 性能最好的是Redis且是最容易理解
- 分布式锁离不开 key - value 设置
基于redis实现分布式锁,文档:http://www.redis.cn/commands.html#string
综合伪代码
methodA(){ String key = "coupon_66" if(setnx(key,1) == 1){ expire(key,30,TimeUnit.MILLISECONDS) try { //做对应的业务逻辑 //查询用户是否已经领券 //如果没有则扣减库存 //新增领劵记录 } finally { del(key) } }else{ //睡眠100毫秒,然后自旋调用本方法 methodA() } }
本文作者为DBC,转载请注明。