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

广州企业建站公司易支付对接WordPress

广州企业建站公司,易支付对接WordPress,网页设计实训报告总结200字,长春网站优化服务线程1现在持有锁之后#xff0c;在执行业务逻辑过程中#xff0c;他正准备删除锁#xff0c;而且已经走到了条件判断的过程中#xff0c;比如他已经拿到了当前这把锁确实是属于他自己的#xff0c;正准备删除锁#xff0c;但是此时他的锁到期了#xff0c;那么此时线程2…线程1现在持有锁之后在执行业务逻辑过程中他正准备删除锁而且已经走到了条件判断的过程中比如他已经拿到了当前这把锁确实是属于他自己的正准备删除锁但是此时他的锁到期了那么此时线程2进来但是线程1他会接着往后执行当他卡顿结束后他直接就会执行删除锁那行代码相当于条件判断并没有起到作用这就是删锁时的原子性问题之所以有这个问题是因为线程1的拿锁比锁删锁实际上并不是原子性的我们要防止刚才的情况发生 Redis提供了Lua脚本功能在一个脚本中编写多条Redis命令确保多条命令执行时的原子性。Lua是一种编程语言它的基本语法大家可以参考网站https://www.runoob.com/lua/lua-tutorial.html这里重点介绍Redis提供的调用函数我们可以使用lua去操作redis又能保证他的原子性这样就可以实现拿锁比锁删锁是一个原子性动作了作为Java程序员这一块并不作一个简单要求并不需要大家过于精通只需要知道他有什么作用即可。 接下来就是我们之前释放锁的逻辑 释放锁的业务流程是这样的 ​ 1、获取锁中的线程标示 ​ 2、判断是否与指定的标示当前线程标示一致 ​ 3、如果一致则释放锁删除 ​ 4、如果不一致则什么都不做 如果用Lua脚本来表示则是这样的 最终我们操作redis的拿锁比锁删锁的lua脚本就会变成这样 -- 这里的 KEYS[1] 就是锁的key这里的ARGV[1] 就是当前线程标示 -- 获取锁中的标示判断是否与当前线程标示一致 if (redis.call(GET, KEYS[1]) ARGV[1]) then-- 一致则删除锁return redis.call(DEL, KEYS[1]) end -- 不一致则直接返回 return 0下面就是在java中如何调用我们的RedisTemplate中可以利用execute方法去执行lua脚本。 Java代码 private static final DefaultRedisScriptLong UNLOCK_SCRIPT;static {UNLOCK_SCRIPT new DefaultRedisScript();UNLOCK_SCRIPT.setLocation(new ClassPathResource(unlock.lua));UNLOCK_SCRIPT.setResultType(Long.class);}Overridepublic void unLock() {// 调用lua脚本stringRedisTemplate.execute(UNLOCK_SCRIPT,Collections.singletonList(KEY_PREFIX name),Collections.singletonList(ID_PREFIX Thread.currentThread().getId()));}小总结 基于Redis的分布式锁实现思路 利用set nx ex获取锁并设置过期时间保存线程标示释放锁时先判断线程标示是否与自己一致一致则删除锁 特性 利用set nx满足互斥性利用set ex保证故障时锁依然能释放避免死锁提高安全性利用Redis集群保证高可用和高并发特性 测试逻辑 第一个线程进来得到了锁手动删除锁模拟锁超时了其他线程会执行lua来抢锁当第一天线程利用lua删除锁时lua能保证他不能删除他的锁第二个线程删除锁时利用lua同样可以保证不会删除别人的锁同时还能保证原子性。
http://www.hkea.cn/news/14324775/

相关文章:

  • wordpress导航网站模板被网络运营公司骗了去哪里投诉
  • 上海网站建设高端wordpress 快讯模板
  • 网站开发调试iis泰州seo网站推广
  • 佛山网站建设凤软创新的做pc端网站
  • 网站建站代理网站建设怎么设置多语言
  • 教育网站建设平台做网站不给源代码
  • 网站运营频道内容建设标志设计要素
  • 儿童玩具网站建设策划书网站建设文献文档
  • 搜索引擎网站提交如何在网站页面添加代码
  • 淘宝客网站推广备案信息足球比赛直播现场在线观看
  • 国外做问卷赚购物券等的网站四川建行网站
  • 安能物流网站企业门户网站建设行情
  • 做网站和做网页一样吗免费给别人开发网站
  • 湘潭网站建设优化建站最新的新闻
  • 网站开发iis怎么配置群晖 做网站服务器
  • 设计网站哪个好用wordpress 文章目录导航
  • 股市行情app企业网站seo数据
  • 网站建设谈判网站改版升级通知
  • 一个网站两个域名吗互联网创始人
  • 织梦xml网站地图大数据做网站流量分析
  • 网站商城开发一个多少钱苏州做网站的单位
  • 怎么快速优化网站o2o网站建设策划
  • 百度收录网站方法江苏体育建设场地网站
  • 新手学网页设计的网站2020十大装修公司
  • 深圳网站优讳化环球贸易网
  • 部门网站建设宗旨建外文网站
  • 网站浮动窗口代码100m做电影网站
  • 网站关键字描述手机网站标准
  • 自建wap网站甘肃省路桥建设集团网站
  • 知名商城网站建设价格网站建设项目延期验收申请报告