pom文件引入依赖
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>3.23.5</version>
</dependency>
demo展示
- 新建redisson配置文件
singleServerConfig:
address: "redis://192.168.52.19:${REDIS_PORT:-6379}"
password: "$PASSWORD"
- demo代码
package other;
import org.redisson.Redisson;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import java.io.File;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
public class RedissonTest {
public static void main(String[] args) throws InterruptedException, IOException {
Config config = Config.fromYAML(new File("D:\\codes\\java\\javas\\projects\\spring2\\src\\main\\resources\\redisson.yml"));
RedissonClient redissonClient = Redisson.create(config);
RLock lock = redissonClient.getLock("lock1");
System.err.println("start ... ");
lock.lock();
System.err.println("start ... ");
try {
System.err.println("lock is locking ... ");
TimeUnit.SECONDS.sleep(50);
} finally {
lock.unlock();
System.err.println("lock is unlocking ... ");
}
}
}
- redis-cli查看lock1是否存在
127.0.0.1:6379> HGETALL lock1
1) "c428b7f8-aca5-4a82-a54f-06f500777920:1"
2) "1"
127.0.0.1:6379> HGETALL lock1
(empty array)
127.0.0.1:6379> HGETALL lock1
1) "fdeb961f-f456-44b6-bd2e-e0f200f08436:1"
2) "1"
- 多启动几个java程序,会发现只有一个进入try块,结束后才会轮到下一个进入
127.0.0.1:6379> HGETALL lock1
1) "e0cb1729-2798-42a2-a308-d4663dbcc558:1"
2) "1"
127.0.0.1:6379> HGETALL lock1
1) "afa782f8-6899-4ebb-882f-91d4ef839c5c:1"
2) "1"