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

网站外链分析怎么做wordpress 编辑界面

网站外链分析怎么做,wordpress 编辑界面,江苏省建设工程造价管理协会网站,小装修网站开发费用【Redis】Redis常见面试题#xff08;1#xff09; 文章目录 【Redis】Redis常见面试题#xff08;1#xff09;1. 为什么要用分布式锁2. Redis如何实现分布式锁3. Redis接受多个请求模拟演示4. 使用Redis实现分布式锁会存在什么问题4.1 一个锁被长时间占用4.2 锁误删 【Re… 【Redis】Redis常见面试题1 文章目录 【Redis】Redis常见面试题11. 为什么要用分布式锁2. Redis如何实现分布式锁3. Redis接受多个请求模拟演示4. 使用Redis实现分布式锁会存在什么问题4.1 一个锁被长时间占用4.2 锁误删 【Redis】Redis常见面试题1 1. 为什么要用分布式锁 之前学到的锁在分布式微服务是不适用的因为之前的锁针对的是本地线程而分布式是跨机器的 而Redis作为一个独立的三方系统其天生的优势就是可以作为一个分布式系统来使用因此使用Redis实现的锁都是分布式锁 2. Redis如何实现分布式锁 Redis实现分布式锁可以通过setnxset if not exists命令实现当我们使用setnx创建键值成功则表明加锁成功否则即加锁失败(需要等待锁释放自旋/挂起等等…)del删除键值表示锁释放 也就是说Redis实现锁机制没有那么的高深莫测和复杂而是一个逻辑概念 一个锁就是一个键值争夺锁就是争夺对这个键值的设置权如果键值被设置了则说明锁被占用如果键值不存在则说明锁没被占用 值是什么具体而论对于争夺锁的机制而已是存不存在比较重要而这个键值对也可以被看成普通的键值对setnx和del不止用在分布式锁的实现它们只是具有特殊含义的命令罢了 又由于Redis天生支持分布式系统所以这个键值可以被所有机器看到满足了一个前提所有机器可以setnx 和 del同一个键值也就是这个锁就是分布式锁 获得锁 127.0.0.1:6379 setnx lock1 true再次获得这把锁 就是个普通键值对~ 释放锁 127.0.0.1:6379 del lock1再次释放锁 那么我们用两个命令行操作redis模拟两个线程讲解Redis分布式锁的一些相关问题 白 黑 3. Redis接受多个请求模拟演示 两个命令行“同时”尝试获取锁总有一个会获取到锁 黑色命令行选择自旋等待锁 直到白色命令行释放锁 黑色命令行才获取到锁 4. 使用Redis实现分布式锁会存在什么问题 4.1 一个锁被长时间占用 当一个应用突然奔溃、掉电、莫名其妙下线了没来得及释放锁可能会出现死锁暂时不考虑可不可以重入锁的问题N个线程M把锁的问题也会导致死锁 死锁参考此文章的死锁讲解【JavaEE】多线程进阶问题-锁策略and死锁CAS操作Synchronized原理_s:103的博客-CSDN博客 怎么处理 设置超时时间 setnx 和 expire搭配使用不太好因为这样这条语句就是非原子性的如果超时时间设置上之前奔溃了依旧解决不了问题 Redis 2.6.12 版本之后提供了一个强大的功能可以让这个操作是原子操作 127.0.0.1:6379 set lock true ex 30 nx可以参考后面的题词ex time单位为秒px time单位为毫秒不设置默认永不过期但是不过期不代表不会被删除掉这跟数据淘汰机制有关 4.2 锁误删 由于这个键值对是公共可见的所以一个线程是可以释放别的线程的锁的从代码上我们不会出现刻意的删除别的线程的锁的恶劣行为但是会有一些不可避免的偶然事件场景下会出现这个问题 白色线程抢到了锁黑色线程自旋 但是白色线程执行花了35秒锁已经自动释放了 黑色线程抢到了锁要执行10秒 白色线程不知道锁被释放并且被抢走了在第35秒的时候严谨规范地释放了锁 即使锁过期了这也只是Redis的机制原应用的业务依旧继续执行不要误解为应用在Redis中执行多个应用只是利用的Redis的分布式锁的机制这里的黑色线程和白色线程只不过是区分两个线程的redis操作黑线程不知道自己的锁被释放了并且锁可能也被其他更多线程获取了黑线程也可能会误删别人的锁混乱起来了线程安全问题大大暴露 这有点像ABA的问题参考此文章的aba模块【JavaEE】多线程进阶问题-锁策略and死锁CAS操作Synchronized原理_s:103的博客-CSDN博客 解决方法与之类似(添加一个属性一个标识或者版本号)保证释放锁是自己刚才抢到的锁 例如设置不一样的value 白色线程设置white黑色线程设置black 也就是刚才的第四步白色线程在释放锁之前进行判断锁的归属 ok白色线程知道了不能释放 但是并不是完全没有问题这个操作是两步的非原子性操作 解决方案 使用lua脚本Redis可以识别的可保证原子性的脚本写多长都是原子性的项目使用Redisson框架有支持原子性的分布式锁 - 底层还是lua脚本只不过你不用写框架帮你写了 一个复杂且好用的东西总会有框架来方便使用 感兴趣的同学可以自行学习 Redisson · GitHub 文章到此结束谢谢观看 可以叫我 小马我可能写的不好或者有错误但是一起加油鸭
http://www.zqtcl.cn/news/702841/

相关文章:

  • sql数据库查询网站模板谷歌浏览器网页版入口
  • 成都h5建站市场监督管理局举报电话
  • 百度推广弄个网站头像要钱吗?最新新闻热点素材
  • 江苏做网站找谁wordpress主题设置插件
  • 郑州微信网站开发建筑网招工平台
  • 给网站挂黑链普工招聘最新招聘信息
  • 重庆推广网站排名价格上海房产信息网官网
  • 深圳网站公司制作网络公司排名
  • 郑州高端做网站网页制作与网站建设实战大全光盘
  • 科技网站制作公司免费模板建站网站
  • 网页排版精美的中文网站单页设计软件
  • 图书馆网站建设情况会员卡管理系统价格
  • 网站建设的通知沈阳品牌设计公司
  • html5网站框架宝安网站建设深圳信科
  • 做网站单页分销电商平台开发
  • 吉林网站备案南京网站开发选南京乐识好
  • 某网站建设方案纯文本网站连接
  • 怎样做网页游戏网站智通人才网东莞最新招聘信息官网
  • 中英文网站建设wordpress 旅行
  • ic商城网站建设南大资源分享wordpress
  • 永兴集团网站织梦网站模板下载
  • html怎么做网站地图柳州小程序制作公司
  • 微网站自助建站京东自营入驻流程及费用
  • 哪些网站适合用自适应开发板编程软件
  • 网站建设公司领导致辞传奇网页游戏大全
  • 公司网站简介网站建设中的英文
  • 没有防盗链的网站做网站市场报价步登顶
  • 网站建设基本话术服装店网站建设规划书
  • 网站建设公司品牌crm客户管理系统设计
  • 网站源码生成器英文网站建设600