# 分布式锁

# 概述

分布式锁定可确保您的方法无法从多个微服务集群并行运行。它使用公用存储来跟踪已使用的锁,并且您的方法需要获取一个或多个锁才能运行。

# 使用方式

添加依赖

<dependency>
  <groupId>com.alinesno.cloud.compoment.distributed.lock</groupId>
	<artifactId>alinesno-cloud-component-distributed-lock</artifactId>
  <version>${最新版本}</version>
</dependency>

使用@EnableRedisDistributedLock以启用 Redis 分布式锁

// 启用分布式锁配置
@Configuration
@EnableRedisDistributedLock
public LockConfiguration {
}

多个锁关键字处理,使用SpEL表达式,如:

@RedisMultiLocked(expression = "T(com.example.MyUtils).getNamesWithId(#p0)")
public void runLockedWithRedis(final int id) {
    // locked code
}

使用基于整数字段值的自定义锁定实现进行锁定count

@Locked(type = MyCustomLock.class, expression = "getCount", prefix = "using:")
public void runLockedWithMyCustomLock() {
    // locked code
}

# 其它