简介:基于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,转载请注明。