Redisson 初步使用

77 阅读1分钟

注意版本redisson-spring-boot-starte 要对应 springboot

  1. 添加maven
<dependency>
    <groupId>org.redisson</groupId>
    <artifactId>redisson-spring-boot-starter</artifactId>
    <version>3.15.6</version>
</dependency>
  1. 沿用 redis 的yaml

  2. 核心代码:

@Service
public class RedisLockService {
    @Resource
    private RedissonClient redissonClient;

    public void lock() {
        // 并不会去尝试获取锁
        RLock lock = redissonClient.getLock("lock_key");
        try {
            //如果锁当前可用,将会获取到锁并继续执行代码。如果锁不可用,代码将会阻塞,直到锁变为可用
            lock.lock(10, TimeUnit.SECONDS);
            // 执行业务代码
        } finally {
            lock.unlock();
        }
    }

    public void tryLock() throws InterruptedException {
        RLock lock = redissonClient.getLock("lock_key");
        try {
            // 尝试获取锁,最长等待获取锁时间为60秒(防止应用程序进入永久阻塞状态)
            // 锁的持有时间为30秒(redis过期时间)
            boolean isLockAcquired = lock.tryLock(60, 30, TimeUnit.SECONDS);

            if (isLockAcquired) {
                // 执行业务代码
            } else {
                // 获取锁超时,处理失败情况
            }
        } finally {
            lock.unlock();
        }
    }
}