当前位置:首页 >> 跨学科知识体系 >> 【Redis】Redisson分布式锁原理与使用,简爱7g(redisson分布式锁实现原理)

【Redis】Redisson分布式锁原理与使用,简爱7g(redisson分布式锁实现原理)

cpugpu芯片开发光刻机 跨学科知识体系 1
文件名:【Redis】Redisson分布式锁原理与使用,简爱7g 【Redis】Redisson分布式锁原理与使用 【Redis】Redisson分布式锁原理与使用 什么是Redisson?

Redisson - 是一个高级的分布式协调Redis客服端,能帮助用户在分布式环境中轻松实现一些Java的对象,Redisson、Jedis、Lettuce 是三个不同的操作 Redis 的客户端,Jedis、Lettuce 的 API 更侧重对 Reids 数据库的 CRUD(增删改查),而 Redisson API 侧重于分布式开发。

视频介绍:面试官:分布式锁有什么作用?如何实现分布式锁?_哔哩哔哩_bilibili

GitHub地址:https://github.com/redisson/redissonre

Redisson原理流程图

Redisson 分布式锁的缺点

Redis分布式锁会有个缺陷,就是在Redis哨兵模式下:客户端1 对某个Master节点写入了Redisson锁,此时会异步复制给对应的 Slave节点。但是这个过程中一旦发生 Master节点宕机,主备切换,slave节点从变为了 Master节点。这时客户端2 来尝试加锁的时候,在新的Master节点上也能加锁,此时就会导致多个客户端对同一个分布式锁完成了加锁。这时系统在业务语义上一定会出现问题,导致各种脏数据的产生。

Redisson分布式锁使用实例 1.引入Redisson依赖 <!--原生--><dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.13.4</version></dependency><!--或者另一种Spring集成starter--><dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId><version>3.13.6</version></dependency> 2.配置Redisson @Configurationpublic class RedissionConfig {@Value("${spring.redis.host}")private String redisHost;@Value("${spring.redis.password}")private String password;private int port = 6379;@Beanpublic RedissonClient getRedisson() {Config config = new Config();config.useSingleServer().setAddress("redis://" + redisHost + ":" + port).setPassword(password);config.setCodec(new JsonJacksonCodec());return Redisson.create(config);}} 3.使用Redisson分布式锁 @Resourceprivate RedissonClient redissonClient;RLock rLock = redissonClient.getLock(lockName);try {boolean isLocked = rLock.tryLock(expireTime, TimeUnit.MILLISECONDS);if (isLocked) {// TODO}} catch (Exception e) {rLock.unlock();}
协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐
«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接