redis分布式锁的这些坑,我怀疑你是假的开发
摘要:用锁遇到过哪些问题? 一、白话分布式 什么是分布式,用最简单的话来说,就是为了较低单个服务器的压力,将功能分布在不同的机器上面;就比如: 本来一个程序员可以完成一个项目:需求->设计->编码->测试 但是项目多的时候,一个人也扛不住,这就需要不同的人进行分工合作了 这就是一个简单的分布式协同工作了; 二、分布式锁 首先看一个问题,如果说某个环节被终止或者别侵占,就会发生不可知的事情 这就会出现,设计好的或者设计的半成品会被破坏,导致后面环节出错; 这时候,我们就需要引入分布式锁的概念; 何为分布式锁? 当在分布式模型下,数据只有一份(或有限制),此时需要利用锁的技术控制某一时刻修改数据的进程数。 用一个状态值表示锁,对锁的占用和释放通过状态值来标识。 分布式锁的条件: 可以保证在分布式部署的应用集群中,同一个方法在同一时间只能被一台机器上的一个线程执行。 这把锁要是一把可重入锁(避免死锁) 这把锁最好是一把阻塞锁 这把锁最好是一把公平锁 有高可用的获取锁和释放锁功能 获取锁和释放锁的性能要好 分布式锁的实现: 分布式锁的实现由很多种,文件锁、数据库、redis等...