Redisson介绍,以及如何使用redisson上锁

java中有好几种Redis客户端,但是Redisson是最快的,所以我们主要学习他

Redisson是一个再Redis的基础上实现的java驻内存数据网格(In-Memory ata Grid),她不仅提供了一系列的分布式的java常用对象,还提供了许多分布式服务,包括Qeue,lock,AtomicLong,CountDownLatch,Publish/Subscribe,Executor service等,

Redisson相比jedis,不仅封装了redis,还封装了对更多数据结构的支持,以及锁等功能

常用功能

- 分布式锁

1. 可重入锁:以线程为单位,当一个线程获取对象锁之后,这个线程可以获取本对象上的锁,而其他的线程不可以

2. 公平uo:,欸个线程抢占锁的顺序为先后调用lock方法的顺序依次获取锁,类似于排队吃饭

3. 闭锁:基于Redisson的redisson分布式锁(CountDownLatch)Java对象RCountDownLatch采用了与java.util.concurrent.CountDownLatch相似的接口和用法

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
    <groupId>org.redisson</groupId>
    <artifactId>redisson-spring-boot-satarter</artifactId>
    <version></version>
</dependency>
spring:
    redis:
        host: 
        password:
        database:

    @Autowired
    private RedissonClient redissonClient;
    //阻塞锁模拟
    public Integer lock1(){
        RLock lock = null;
        try{
            lock = redissonClient.getLock("Lock1");
            lock.lock();
            Thread.seep(2000);
        }catch(Exception e){
            e.printStackTrace();
        }finally {
            if(null != lock&&lock.isHeldByCurrentThread()) {
                lock.unlock();
            }
        }
        return 1;
    }
    //非阻塞
    public Integer lock2(){
        RLock lock = null;
        try{
            lock = redissonClient.getLock("lock2");
            if(lock.tryLock()) {
                //拿到锁的
                Try.sleep(2000);
            }else{
                //没拿到锁的
            }
        } catch (Exception){
            e.printStackTrace();
        } finally {
            if(null != lock && lock.isHeldByCurrentThread()) {
                lock.unlock;
            }
        }
        return 1;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值