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

上弦 网站建设建设网站专家

上弦 网站建设,建设网站专家,端掉一个wordpress网站,seo发帖网站上一篇文章我们基于redis的set nx ex 命令以及Lua脚本实现了基本的分布式锁,但是还存在一下几点问题。于是又引出了redisson。 为什么基于SETNX的分布式锁无法实现可重入 先在method1中获取锁,获取成功后又调用method2,而method2内部也会获取…

 上一篇文章我们基于redis的set nx ex 命令以及Lua脚本实现了基本的分布式锁,但是还存在一下几点问题。于是又引出了redisson。

 为什么基于SETNX的分布式锁无法实现可重入

先在method1中获取锁,获取成功后又调用method2,而method2内部也会获取锁。因为我们是基于setnx实现的分布式锁所以当method1获取锁成功后redis中已经存在了对应的key 所以method2无法获取锁

 实现可重入锁(用Lua脚本)

用hash结构代替string结构,同一个线程内多次获取锁时只需要将value值+1就可以,释放锁时判断value是否为0然后-1因为获取锁和释放锁都是成对出现的,所以当value为0时表示已经是最外层的锁了,没有其它业务要执行了此时就可以把这个锁删除

redisson可重入锁源码 

 最终也是通过Lua脚本保证获取锁操作的原子性先判断锁是否存在或者是不是自己的,如果锁不存在就获取成功并且value=1;如果锁存在并且是自己的就将value+2=1然后返回nil,其余都返回剩余过期时间,如果你什么参数都不传,默认的过期时间是30s

http://www.yayakq.cn/news/369941/

相关文章:

  • 做化工行业网站网页制作专业搜题
  • 有实力的网站建设推广seo联盟
  • 公司微网站怎么建设做企业网站公司报价
  • 网站建设推广书籍网站开发 兼职
  • 赣icp网站建设小小影院 电视剧免费
  • 接网站建设单子的网站优化设计英语
  • 网站建设的课程设计报告广州网页设计培训教程
  • 网站点击率多少正常app制作软件下载官网
  • 广州 网站制作公司 网络服务东莞外贸网站制作
  • 网站设计师简介免费建站网站自助建站的网站建站
  • 网站开发与网页后台开发网站建设管理制度九不准
  • 苏州网站建设网络推广交互设计留学
  • 网站开发赚钱方向郑州最好的妇科医院
  • 不备案如何架设网站网站上的动效是用ae做的
  • 要做个卖东西网站怎么做建设网站石家庄
  • 想做一个自己的网站怎么做的四川网站建设找珊瑚云
  • 科技公司网站建设湖南岳阳网站建设公司黄页顺企网
  • 网站开发音乐广州做网站优化哪家好
  • 学校建设网站的目的和意义大兴网站建设制作
  • 长沙网站制造2023年的新闻十条
  • 电商网站开发人员企业建网站
  • wordpress心理教育网站东台做网站的公司
  • 网站信息发布制度建设设计一个小型的局域网方案
  • 怀化网站优化公司哪家好会计事务所
  • 网站建设的基本特点成都网站制作设计公司
  • 大学生网站开发工作室总结深圳有几个区哪个区最繁华
  • 临沂网络网站建设绍兴以往网站招工做
  • 山东济南城乡建设厅网站天元建设集团有限公司三层九中心
  • 网站搜索引擎优化怎么做自己怎么做网站啊
  • 秦淮区建设局网站wordpress视频适应播放器