平凡也就两个字: 懒和惰;
成功也就两个字: 苦和勤;
优秀也就两个字: 你和我。
跟着我从0学习JAVA、spring全家桶和linux运维等知识,带你从懵懂少年走向人生巅峰,迎娶白富美!
关注微信公众号【 IT特靠谱 】,每一篇文章都是心得总结,跟我学习你就是大牛!
并发控制与分布式锁(redis/zookeeper)实现【图文教程】_第4章
---redis分布式锁实现并发控制
温馨提示:
(1)redis锁不仅适用于单机服务,也适用于集群分布式系统的并发控制。同zookeeper分布式锁。
(2)生产环境中一般用redission框架来实现redis分布式锁(redission功能很强大),而基本上不会用redis client客户端方式来实现redis分布式锁。但是本文为了能让基础薄弱的同学深入理解redis分布式锁的原理,因此通过redis client来实现分布式锁。
1. 引入jar包
需要用到操作redis的客户端工具jedis,因此引入以下jar包
<!-- jedis:redis的客户端 -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
2 实现redis分布式锁
定义redis锁类:RedisLock.java
测试方法:main()
3 总结
前面几章节介绍了实现并发控制的集中方式,因此小结一下:
(1)单实例服务的并发控制只能通过synchronized和ReentrantLock同步锁或乐观锁来实现;数据库层面的乐观锁一般通过version版本来实现,内存变量层面的乐观锁一般通过CAS方式来实现;
(2)redis和zookeeper分布式锁使用于分布式系统(集群)的并发控制;
(3)redis的分布式锁的效率要高于zookeeper的分布式锁,因为redis是内存数据库,速度更快。
下一章节将详细介绍redission框架! 请输入【IT特靠谱】或扫描下面微信公众号关注后查看~