前言
单机版应用可以用锁(lock、synchronized)解决共享资源操作问题,但在分布式系统下 比如多个进程同时对一个资源进行修改,我们无法控制 ,中间必须加一层中间件来控制共享资源的操作,目前比较流行的分布式锁基于zookeeper、redis、数据库等来实现,本文主要是基于redis实现分布式锁。
实现基本原理
说下redis基本命令
SETNX key value
SETNX是key如果存在则返回0,不存在则返回1,如下图所示
那么说白了就是:== redis作为一个中间件来控制分布式系统中多个服务操作 共享资源 ==
单机版可以换成lock、synchronized方式,就如下图
正文
案例1
源码
public class LockCase1 extends RedisLock {
public L