栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

分布式锁开发

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

分布式锁开发

Redisson分布式锁 搭建 maven


    org.redisson
    redisson
    3.12.0


单实例模式搭建

github地址

https://github.com/redisson/redisson/wiki/2.-Configuration

配置类,加入ioc容器

// connects to 127.0.0.1:6379 by default
RedissonClient redisson = Redisson.create();

Config config = new Config();
config.useSingleServer().setAddress("redis://myredisserver:6379");
RedissonClient redisson = Redisson.create(config);

分布式锁文档地址

https://github.com/redisson/redisson/wiki/8.-%E5%88%86%E5%B8%83%E5%BC%8F%E9%94%81%E5%92%8C%E5%90%8C%E6%AD%A5%E5%99%A8

可重入锁(Reentrant Lock)

无需处理掉电或者程序问题导致锁失效问题

 RLock lock = redisson.getLock("anyLock");
// 最常见的使用方法
lock.lock();//阻塞式等待,默认30s释放,无需处理掉电或者程序问题导致锁失效问题
// 加锁以后10秒钟自动解锁
// 无需调用unlock方法手动解锁
lock.lock(10, TimeUnit.SECONDS);

// 尝试加锁,最多等待100秒,上锁以后10秒自动解锁
boolean res = lock.tryLock(100, 10, TimeUnit.SECONDS);
if (res) {
   try {
     ...
   } finally {
       lock.unlock();
   }
}
公平锁(Fair Lock)

FIFO算法执行锁,依次排队等待锁

联锁(MultiLock) 红锁(RedLock) 读写锁(ReadWriteLock)

读业务用读锁,写业务用写锁,2者一起用。
读读业务是共享锁
其余业务都是排他锁(阻塞等待)

信号量(Semaphore)

可用业务比如服务限流

可过期性信号量(PermitExpirableSemaphore) 闭锁(CountDownLatch) springCache开发
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1027578.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号