Redis实现分布式锁
系列文章基于Redis2.8版本1:Redis学习资料收集2:Redis基础数据结构3:Redis实现分布式锁 官方实现 https://redis.io/topics/distlock 官方实现--翻译中文 http://www.redis.cn/topics/distlock.html 声明:看了很多文章,大多数文章都是摘取了官方文档,或者在上面进行加工,所以建议大家可以看上面的参考文档。 3.1 为什么需要分布式锁 系统里面有一些资源是竞争保护性资源。例如抢购活动中的商品库存。 然而我们后台系统一般会使用负载均衡,微服务等。会导致有多个JVM实例,所以我们Java的同步代码块synchronized,以及java.util.concurrent.locks包下常用的方法就不能满足需求。 解决办法: 1:基于数据库的乐观锁,和排它锁。 2:基于Zookeeper创建临时节点。 3:基于Redis实现。 3.2 实现分布式锁要实现的关键点 互斥:只能有一个客户端拥有所。 不会发生死锁:持有锁的客户端异常,超时,能正确释放锁。 容错性:只有大部分Redis节点正常运行,客户端就应该可以...
