【并发控制】并发控制与分布式锁(redis/zookeeper)实现【图文教程】_ 第5章

平凡也就两个字: 懒和惰;
成功也就两个字: 苦和勤;
优秀也就两个字: 你和我。
跟着我从0学习JAVA、spring全家桶和linux运维等知识,带你从懵懂少年走向人生巅峰,迎娶白富美!
关注微信公众号【 IT特靠谱 】,每一篇文章都是心得总结,跟我学习你就是大牛!

并发控制与分布式锁(redis/zookeeper)实现【图文教程】_第5章

---redission分布式锁实现并发控制

1 redission简介

      Redisson是架设在Redis基础上的一个Java驻内存数据网格(In-Memory Data Grid)。【Redis官方推荐】

      Redisson在基于NIO的Netty框架上,充分的利用了Redis键值数据库提供的一系列优势,在Java实用工具包中常用接口的基础上,为使用者提供了一系列具有分布式特性的常用工具类。使得原本作为协调单机多线程并发程序的工具包获得了协调分布式多机多线程并发系统的能力,大大降低了设计和研发大规模分布式系统的难度。同时结合各富特色的分布式服务,更进一步简化了分布式环境中程序相互之间的协作。

    本测试案例是基于springboot微服务项目,并且在redis主从同步 + 哨兵(保证redis缓存的高可用,主从同步和故障转移)场景下进行的测试。下话不多说,直接上代码!

2  引入springboot-redission依赖包

<!-- 【redission分布式锁实现步骤1】:引入redisson依赖 -->
<dependency>
  <groupId>org.redisson</groupId>
  <artifactId>redisson-spring-boot-starter</artifactId>
  <version>3.10.4</version>
</dependency>

温馨提示:

(1)引入redisson-spring-boot-starter依赖包后,就无需引入spring-data-redis依赖(如下),因为springboot-redission依赖包中依赖了spring-data-redis依赖包。

(2)spring-data-redis依赖包中依赖了jedis依赖包,但是redission引入的spring-data-redis依赖包时排除了jedis依赖包。

(3)因此如果用到了redis缓存,同时用到了redission来实现分布式锁,那么既要引入redission依赖包,同时也要引入jedis依赖包!

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
  <groupId>redis.clients</groupId>
  <artifactId>jedis</artifactId>
  <version>3.3.0</version>
</dependency>

3 修改applicatopn.yml配置类

内容如下:

基于applicaiton.yml编写redission配置类

redission配置类:RedissionConfiguration.java

Tips: 需要源码或技术指导请关注文章底部的微信公众号,回复“我要redission”免费获取redission分布式锁代码demo~

测试redission分布式锁

      编写TestRedissionController.java类,用于测试redission框架实现的分布式锁!

     

      后面将陆续分享redis主从同步 + 哨兵的部署教程。关注微信公众号回复"我要redission"即可免费领取本文章demo源码及其相关教程~

 

猜你喜欢

转载自blog.csdn.net/IT_Most/article/details/108780567