分布式锁的应用场景 在分布式业务中,若涉及到共享的资源,未防止多个进程同时访问、处理该资源,那么则需要一个分布式锁 来保证该共享资源在同一时刻只能被一个对象进行处理。 设计理论 为了实现锁互斥能力,则一定涉及到 Redis 的SETNX指令(SET if Not eXist) 锁只能由创建锁的对象解开,所以需要记录锁是由哪个对象创建的,解锁时需要验证锁的所有权 为了防止死锁,第一 需要允许强制解除锁,第二 每个锁必须要有 超时时间 综上,便可以编写出一个锁的定义了 type lock struct { contex…