我们都知道实现Redis分布式锁会用到Redis的setnx命令,这个命令会实现在key不存在的时候才能设置成功,一般的场景这种方式就能实现简单的分布式锁,但是这种方式存在很多问题,比如锁过期的问题,setnx和锁过期命令expire是两个单独的命令,执行的时候不具有原子性,当然还有其他的问题,我们在后面再一一介绍。
Redisson框架就是为我们封装了分布式锁的很多实现细节,我们可以用简单的几行命令实现相对完善的分布式锁。
下面我们就以Springboot整合redisson来实战一下。
- <?xml version="1.0" encoding="UTF-8"?>
- <project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>com.liupeng</groupId>
- <artifactId>redis-test</artifactId>
- <version>1.0</version>
- <properties>
- <java.version>1.8</java.version>
- <project.build.sourceEncoding>UTF-8</p