ok 我们从最基础的一步步来

加锁:

1.setNx没有expire,拿锁线程挂掉后,死锁

2.setNx然后exipre分两步做,setNx后redis宕机,或者线程挂掉,死锁

3.SETNX resource_name my_random_value PX 30000 加锁和过期原子操作 ok

解锁:

1.直接delete,可能因为业务超时删掉其他线程获得的锁

2.先get,对比唯一id后再delete,分2步做不是原子操作,不能保证delete的时候唯一id还是get是的那个

3.lua或者事务 原子操作get和delete,ok

超时:

1.业务超时,导致之前线程持有的锁过期,其他线程重新获得锁进入临界区,调大锁的超时时间,但是又会有线程挂掉,锁过期释放时间较长的问题

主宕机锁没有同步到从,从变主后导致多个线程获得锁

1.有个redLock的思想,把加锁成功的条件变成多master集群中超过半数的机器加锁成功,才算获得锁。简直了

最新文章

  1. html5shiv.js and respond.min.js
  2. 请求WebApi的几种方式
  3. Ubuntu 14 常用“快捷键”,Ctrl + Alt + F1 进入终端,按 Ctrl + Alt + F7 回到界面
  4. 运行QQ出现initialization failure 0x0000000c错误和浏览器上不了网
  5. 谷歌的网页排序算法(PageRank Algorithm)
  6. 我的NopCommerce之旅(6): 应用启动
  7. 在iOS7中修改状态栏字体的颜色
  8. 根据CSV更新AD对象的属性
  9. 构造高度自适应的textarea
  10. 转:svn命令行操作
  11. R语言 关联规则
  12. 超市RFID结算系统项目进度与总结
  13. 关于wxpython多线程研究包括(import Publisher错误研究)
  14. 《算法4》2.1 - 插入排序算法(Insertion Sort), Python实现
  15. 自制权限框架(一)jsp标签
  16. VMWare 鼠标无法点击 的问题
  17. layer中每次用到都要查来查去的功能
  18. P1230 智力大冲浪
  19. CSS-弹性布局-伪类选择器-复杂选择器
  20. Java-Java面向对象程序设计

热门文章

  1. python 数据分析之pandas
  2. .NET内存分析工具-dotMemory
  3. 调度《Taint(污点) 和 Toleration(容忍)》
  4. (二)http请求方法和状态码
  5. Round 4
  6. PhpExcel PhpSpreadsheet 锁定单元格 正确做法!!
  7. OJ-1:时钟问题【九度1553】
  8. 微信小程序开发实战(云开发)--资产管理工具
  9. LR-demo
  10. python数据分析02语法基础