分布式锁工具Redisson,太香了!!

f69cb7e3ba4e736e77af6c1e4fc54ef3.png

若有收获,请记得分享和转发哦

正文

一、Redisson概述

什么是Redisson?—— Redisson Wiki

Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务。其中包括(BitSet, Set, Multimap, SortedSet, Map, List, Queue, BlockingQueue, Deque, BlockingDeque, Semaphore, Lock, AtomicLong, CountDownLatch, Publish / Subscribe, Bloom filter, Remote service, Spring cache, Executor service, Live Object service, Scheduler service) Redisson提供了使用Redis的最简单和最便捷的方法。Redisson的宗旨是促进使用者对Redis的关注分离(Separation of Concern),从而让使用者能够将精力更集中地放在处理业务逻辑上。

一个基于Redis实现的分布式工具,有基本分布式对象和高级又抽象的分布式服务,为每个试图再造分布式轮子的程序员带来了大部分分布式问题的解决办法。

Redisson和Jedis、Lettuce有什么区别?倒也不是雷锋和雷锋塔

Redisson和它俩的区别就像一个用鼠标操作图形化界面,一个用命令行操作文件。Redisson是更高层的抽象,Jedis和Lettuce是Redis命令的封装。

  • Jedis是Redis官方推出的用于通过Java连接Redis客户端的一个工具包,提供了Redis的各种命令支持

  • Lettuce是一种可扩展的线程安全的 Redis 客户端,通讯框架基于Netty,支持高级的 Redis 特性,比如哨兵,集群,管道,自动重新连接和Redis数据模型。Spring Boot 2.x 开始 Lettuce 已取代 Jedis 成为首选 Redis 的客户端。

  • Redisson是架设在Redis基础上,通讯基于Netty的综合的、新型的中间件,企业级开发中使用Redis的最佳范本

Jedis把Redis命令封装好,Lettuce则进一步有了更丰富的Api,也支持集群等模式。但是两者也都点到为止,只给了你操作Redis数据库的脚手架,而Redisson则是基于Redis、Lua和Netty建立起了成熟的分布式解决方案,甚至redis官方都推荐的一种工具集。

5dac833b2c05eb0bf2208c332b79db6d.png

227c41dba8eea389204b7e048383631b.png

59980ca71ad15760da967fec84041f29.png

13d6257c34ce1eaf7ac71e6a37b7b60c.png

09eb2bb08e10abaea0aa6023d3427bb3.png

ce2d14346cfbb2b59d6f6afa5cc7d3f4.png

8104352dfa17cea254f2ede590e63545.png

48c5fb9035986d931e5cd4fd446b6116.png

而redis也有hash自增的命令hincrby

每次自增1时 hincrby lockname1 threadId 1,自减1时 hincrby lockname1 threadId -1

a7192a0b9dcbe2816adb0db861b8eff4.png

045c05be064c5d1f783001f6e372c75a.png

5819107999d11c2285464ec66642afd0.png

05db24f95944df8903e5e9a6c2583c24.png

3edc297481b59c067078374690028caf.png

49a76c3bcee6b91340dc8d38d705063d.png

a94be902f4847ae17d7c6f9e3dca9d66.png

6c04dba7e17bc82823f0527eca0eaef6.png

bbb42c3c3f108f265432bd1cfb2f5907.png

7c46a280e4ca55ef41335a453d8865e3.png

d8d957f9b357a4062a66c36d8d2e35a7.png

89d328ba3d09f21f68f67543a9e0a176.png

a95fceef4f2762cdb52874b3f666f33b.png

2d99c0bccf88d6e84a7f259f948d0a6b.png

484075c2cffdaacf2c682b83cb68e0a0.png

5d7bf5ec181c512eb2ffa4668eb9db02.png

aacde132c6a6f0e8914c4c2ad54d8a07.png

b39c7da9d6b73fb0dafef6f83d8e6566.png

abd43ea95a53860455fb4887fb8d3df1.png

6cb7b3dbaa424dacc8ff4dcf47adb040.png

f4f3f6501f9bd5777bbff4ea7ca6b5a4.png

4f1a57a06c7ec3f269ea449965ba48b1.png

bf58ab98b7cef75e8e22f04dc3c56e64.png

d39ee85f8ad372dedd32d9f34147d066.jpeg

46095ea845f14ee9de7d5272996d4268.png

049a7fdc6cc070fe6f1bdb5f9c8a6c2f.png

8ecb22256fcd69ddd2fbaea9dcabe189.png

1c1617b1f3db82a13f107b78405cf107.png

一张是独占式获取同步状态的总流程,核心acquire(int arg)方法调用流程

b14ff1d1c2178ba138369c08510625d8.png

10eca37a4daf60153e999f585e0b1b13.png

3a2164e50dd618a9db268c5fd349f465.png

87a6c728ae22225b6a44502b80f84cc3.png

617cfc78cb9fd84b465f8571b087c4db.png

908fad2f0cc8b1f8408da9dc92d6d815.png

58dbbdf7015795919f8506ebc3922786.png

d352ef070ca8704aa9619e90bba260e9.png

f3e958b5c417a1d1f17b1913c152436b.png

378521b31e0f93170c7524bcf283330b.png

bc1e21f77f7a74483ae346c519c7976a.png

b4b17b4dde1744ec337f15fa001be31a.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值