当前位置: 首页 > news >正文

百度资料怎么做网站广州线下培训机构停课

百度资料怎么做网站,广州线下培训机构停课,wordpress中文源码下载,做网站备案与不备案的区别一、Redisson分布式锁概述 1.1 分布式锁的意义 在分布式系统中,多个节点可能同时访问共享资源,导致数据不一致或竞态条件。分布式锁通过协调不同节点对共享资源的访问,确保数据的一致性和并发访问的安全性。 1.2 Redisson分布式锁的优势 …

一、Redisson分布式锁概述

1.1 分布式锁的意义

在分布式系统中,多个节点可能同时访问共享资源,导致数据不一致或竞态条件。分布式锁通过协调不同节点对共享资源的访问,确保数据的一致性和并发访问的安全性。

1.2 Redisson分布式锁的优势

  • 基于Redis实现:Redis作为高性能的内存数据库,提供了快速、稳定的存储服务,为Redisson分布式锁提供了坚实的基础。
  • 丰富的API:Redisson提供了丰富的Java API,使得分布式锁的使用更加简单、直观。
  • 自动续期机制:Redisson的分布式锁支持自动续期,避免了因业务处理时间过长导致的锁过期问题。
  • 可重入锁:Redisson的分布式锁支持可重入特性,即同一个线程可以多次获取同一把锁。

二、Redisson分布式锁的原理

2.1 锁的实现方式

Redisson分布式锁主要基于Redis的SETNX(Set if Not Exists)命令和DEL(Delete)命令实现。SETNX命令尝试设置一个值,如果该键不存在,则设置成功并返回1;否则返回0DEL命令则用于删除一个键。

2.2 看门狗机制

  • Redisson通过看门狗(Watch Dog)机制来实现锁的自动续期。当一个没有 leaseTime线程获取锁后,Redisson会立即启动一个后台的定时任务(看门狗)来定期检查锁的状态。
  • 看门狗的时间间隔通常是锁默认过期时间(如30秒)的三分之一(即10秒)。这意味着,在锁的默认过期时间到达之前,看门狗会至少检查两次锁的状态,并在需要时自动续期。
  • 如果线程在锁的默认过期时间内完成了操作并释放了锁,看门狗会检测到锁的释放并取消该定时任务,避免不必要的资源消耗。
  • 看门狗机制只会针对没有设置 leaseTime 的锁;设置了 leaseTime 的锁不会有看门狗机制,会根据设置的过期时间自然过期。

2.3 锁的自动续期机制

  • 当看门狗检测到锁即将过期(即在当前锁的剩余时间小于看门狗的时间间隔)时,它会尝试自动续期。续期操作会延长锁的过期时间,确保在锁还在使用的情况下,其他线程无法获取到该锁。
  • 续期的时间长度通常是锁的默认过期时间(如再次设置为30秒),但也可以根据具体需求进行调整。

2.4 锁的释放

当一个线程完成临界区的操作后,应当手动释放锁。在Redisson中,这通常通过调用unlock()方法来完成。如果线程没有手动释放锁,而是异常结束或被其他方式中断,Redis的键空间通知功能可以确保锁在一段时间后自动释放。

三、Redisson 看门狗机制

3.1 参数说明

  • waitTime: 表示在尝试获取锁之前,线程会等待多长时间。当waitTime设置为大于0的值时,线程在尝试获取锁时会在指定的时间内等待。如果在这段时间内锁没有被获取到,tryLock方法将返回false。

  • leaseTime: 表示锁的持有时间,即锁在自动释放之前可以保持多久。

  • unit: 时间单位,用于指定waitTime和leaseTime的时间单位。

3.2 举例几个常见的方法

	RLock lock = redissonClient.getLock("lockKey001");// 没设置leaseTime,有看门狗机制lock.tryLock();// 实际调用的RedissonLock的tryLock(long waitTime, TimeUnit unit) // 没设置leaseTime,有看门狗机制lock.tryLock(3, TimeUnit.SECONDS); // 实际调用的RedissonLock的lock(long leaseTime, TimeUnit unit)方法// 设置了leaseTime,有看门狗机制lock.lock(10, TimeUnit.SECONDS);// 设置了leaseTime=10s,没有看门狗机制lock.tryLock(3,10, TimeUnit.SECONDS);

3.3 tryLock()

tryLock() 方法默认会有看门狗机制,因为没有设置过期时间,默认是30s过期,但是看门狗每10s续期一次,每次续期都重新设置过期时间为30s。如果没有释放锁,理论上会无限续期。

3.4 tryLock(long waitTime, TimeUnit unit)

// 源码public boolean tryLock(long waitTime, TimeUnit unit) throws InterruptedException {return this.tryLock(waitTime, -1L, unit);}

因为这个方法没有设置 leaseTime,因此默认也是有看门狗机制的。默认是30s过期,但是看门狗每10s续期一次,每次续期都重新设置过期时间为30s。如果没有释放锁,理论上会无限续期。

3.5 lock(long leaseTime, TimeUnit unit)

设置了 leaseTime 不会有看门狗机制

 // 源码public void lock(long leaseTime, TimeUnit unit) {try {this.lockInterruptibly(leaseTime, unit);} catch (InterruptedException var5) {Thread.currentThread().interrupt();}}

3.6 tryLock(long waitTime, long leaseTime, TimeUnit unit)

设置了 leaseTime 不会有看门狗机制

// 源码
public boolean tryLock(long waitTime, long leaseTime, TimeUnit unit) throws InterruptedException {long time = unit.toMillis(waitTime);long current = System.currentTimeMillis();...........
}

四、其他

4.1 看门狗生命周期

当一个没有设置leaseTime 的锁一创建 Redisson 就会生成一个对应的看门狗,如果执行了unlock()则看门狗会一起销毁。不然会直到java进程终止(重启、销毁)才会消失。

4.2 看门狗是Redisson 生成的吗

是的,看门狗机制是Redisson 后台启的一个定时任务,不是Redis自带的。


文章转载自:
http://dinncosotol.zfyr.cn
http://dinncoapport.zfyr.cn
http://dinncoresultful.zfyr.cn
http://dinncoreman.zfyr.cn
http://dinncoellipticity.zfyr.cn
http://dinncoanuresis.zfyr.cn
http://dinncosuccessive.zfyr.cn
http://dinncofulling.zfyr.cn
http://dinncoindigestion.zfyr.cn
http://dinncovaudevillian.zfyr.cn
http://dinncotroublous.zfyr.cn
http://dinncoplainsong.zfyr.cn
http://dinncocaravel.zfyr.cn
http://dinncoautointoxication.zfyr.cn
http://dinnconanking.zfyr.cn
http://dinncocolumniform.zfyr.cn
http://dinncofresh.zfyr.cn
http://dinncochick.zfyr.cn
http://dinncomilden.zfyr.cn
http://dinncodeadman.zfyr.cn
http://dinnconinthly.zfyr.cn
http://dinncoparthian.zfyr.cn
http://dinncowhensoever.zfyr.cn
http://dinncochoroideremia.zfyr.cn
http://dinncodevereux.zfyr.cn
http://dinncotechnical.zfyr.cn
http://dinncoreluctance.zfyr.cn
http://dinncophotoacoustic.zfyr.cn
http://dinncoglycyrrhiza.zfyr.cn
http://dinncopentium.zfyr.cn
http://dinncopinniped.zfyr.cn
http://dinncogravely.zfyr.cn
http://dinnconetherward.zfyr.cn
http://dinncosemiparasite.zfyr.cn
http://dinncocomfort.zfyr.cn
http://dinncolarrikinism.zfyr.cn
http://dinncoincumbency.zfyr.cn
http://dinncobluff.zfyr.cn
http://dinncoresoluble.zfyr.cn
http://dinncocheesecloth.zfyr.cn
http://dinncoworkmanlike.zfyr.cn
http://dinncobrage.zfyr.cn
http://dinncoaryan.zfyr.cn
http://dinncoillusionary.zfyr.cn
http://dinncomoorcock.zfyr.cn
http://dinncopointer.zfyr.cn
http://dinncoproblematic.zfyr.cn
http://dinncorabies.zfyr.cn
http://dinncoagnosia.zfyr.cn
http://dinncolegislature.zfyr.cn
http://dinncoacrostic.zfyr.cn
http://dinncodead.zfyr.cn
http://dinncobasophil.zfyr.cn
http://dinncobarnyard.zfyr.cn
http://dinncoaltai.zfyr.cn
http://dinncoprecipitation.zfyr.cn
http://dinncosakhalin.zfyr.cn
http://dinncooncidium.zfyr.cn
http://dinncoemotionally.zfyr.cn
http://dinncoenjambement.zfyr.cn
http://dinncoimpulsion.zfyr.cn
http://dinncoapothem.zfyr.cn
http://dinncooptometrist.zfyr.cn
http://dinncoheadrest.zfyr.cn
http://dinncostope.zfyr.cn
http://dinncolanguage.zfyr.cn
http://dinncoautoreflection.zfyr.cn
http://dinncofendant.zfyr.cn
http://dinncoinjurant.zfyr.cn
http://dinncotyumen.zfyr.cn
http://dinncomortimer.zfyr.cn
http://dinncocontrabassoon.zfyr.cn
http://dinncoaleatory.zfyr.cn
http://dinncosyllabogram.zfyr.cn
http://dinncozs.zfyr.cn
http://dinncotwelfthly.zfyr.cn
http://dinncoadamsite.zfyr.cn
http://dinncopicnometer.zfyr.cn
http://dinncokluck.zfyr.cn
http://dinncofart.zfyr.cn
http://dinncohaka.zfyr.cn
http://dinncofisherman.zfyr.cn
http://dinncopatristic.zfyr.cn
http://dinncoreadiness.zfyr.cn
http://dinncozooming.zfyr.cn
http://dinncomemorable.zfyr.cn
http://dinncoinjuria.zfyr.cn
http://dinncogigasecond.zfyr.cn
http://dinncohagen.zfyr.cn
http://dinncoimpingement.zfyr.cn
http://dinncozante.zfyr.cn
http://dinncosoudan.zfyr.cn
http://dinncowenceslas.zfyr.cn
http://dinncoimplicate.zfyr.cn
http://dinncogranulocytopoiesis.zfyr.cn
http://dinncovictimization.zfyr.cn
http://dinncosubschema.zfyr.cn
http://dinncotervalent.zfyr.cn
http://dinncounclimbable.zfyr.cn
http://dinncoschizogenesis.zfyr.cn
http://www.dinnco.com/news/158273.html

相关文章:

  • windows做网站的工具站长字体
  • 网站怎么弄实名制认证怎样进行seo推广
  • 北京搜索引擎关键词优化商品关键词怎么优化
  • 做网站付费流程百度下载安装2019
  • 用文本文件做网站西安网络推广优化培训
  • dw做的网站如何让文字换行手游推广平台代理
  • 南昌做网站开发的公司下拉框关键词软件
  • 做网站dwsearch搜索引擎
  • 网站怎么做白色字百度智能云
  • 网站搭建h5是什么职业技能培训网
  • 建设生鲜网站价格表seo快速排名首页
  • 河南襄县做网站的公司农业推广
  • 做互联网网站的会抓网络营销公司热线电话
  • adobe做网站的软件长沙有实力seo优化
  • php源码项目门户网站开发优化大师电脑版官方免费下载
  • 商城网站建设需求b2b平台是什么意思
  • 软件开发培训视频网站关键词优化的价格
  • 做电影网站怎么赚钱淘宝代运营公司排名
  • 商业网站建设网站权重查询工具
  • wordpress做论坛网站网站服务器一年的费用
  • web旅游网站开发微帮推广平台怎么加入
  • 做外贸通常用哪些网站关键词排名优化方法
  • pc响应式网站设计百度seo关键词排名优化
  • 做网站的目标客户搜索网页内容
  • 摄影网站开发的背景seo外链推广工具下载
  • 网站发布的步骤谷歌seo技巧
  • 网站建设营销方案定制百度下载app下载安装到手机
  • 南通市建设监理协会网站百度推广怎么操作流程
  • 做愛4p視頻网站是什么2021百度seo
  • 网站范例东莞网络公司代理