您现在的位置是:网站首页> 编程开发> java 编程开发

redis分布式锁

2022-08-03java 404人已围观

简介使用redsi防并发,虽然很容易实现,但总不是100%完美,没有最好,只有更好1.所有类2.主要实现方法参数描述com.jhd.order.center.lock.ReentrantLock#tryLock(long, long,java.util.concurrent.TimeUnit)param1:等待获取锁的时间,默认0param2:锁过期时间,默认永不过期param3:时间单位获取到锁直接

redis分布式锁

最后更新:2022-12-03 13:02:06

推荐指数

使用redsi防并发,虽然很容易实现,但总不是100%完美,没有最好,只有更好

1.所有类

fb6284528d9323d28f47c4ac0b9f2237_image2019-12-26_10-45-45_version=1&modificationDate=1577328346000&api=v2.png

2.主要实现

方法

参数

描述



com.jhd.order.center.lock.ReentrantLock#tryLock(long, long,java.util.concurrent.TimeUnit)

param1:等待获取锁的时间,默认0

param2:锁过期时间,默认永不过期

param3:时间单位


获取到锁直接返回true,如果锁已经被其他的线程或者分布式系统中其他的进程占有,

在等待时间内不断的尝试获取锁,等待时间过去之后还没有获取到锁,则返回false。

锁被获取后,调用unlock方法或者过期时间到了都会把这个锁删除掉。



com.jhd.order.center.lock.ReentrantLock#tryLock(long, java.util.concurrent.TimeUnit)

param1:锁过期时间,默认永不过期

param2:时间单位

获取到锁直接返回true

锁被获取后,调用unlock方法或者过期时间到了都会把这个锁删除掉。



com.jhd.order.center.lock.ReentrantLock#unlock
释放锁

com.jhd.order.center.lock.ReentrantLock#renew
延长锁的租用时间

3.包引用

需要启用redis 2.1以上的包

<>
    <>org.springframework.boot</>
    <>spring-boot-starter-data-redis</>
    <>
        <>
            <>org.springframework.data</>
            <>spring-data-redis</>
        </>
    </>
</>
<>
    <>org.springframework.data</>
    <>spring-data-redis</>
    <>2.2.3.RELEASE</>
</>
<>
    <>net.jcip</>
    <>jcip-annotations</>
    <>RELEASE</>
    <>compile</>
</>

4.使用例子

596b63d7f9a4fb643efb387280fc9d5a_image2019-12-26_11-20-44_version=1&modificationDate=1577330445000&api=v2.png

f77b1f6971bbeb5a41161383cadfb7af_image2019-12-26_11-21-8_version=1&modificationDate=1577330469000&api=v2.png


很赞哦! (1)

文章评论

来说两句吧...

验证码: