redisson的unlock方法

复制代码
//分布式方式,分布式锁,采用redisson锁
RLock lock = redissonClient.getLock(userId.toString());//lock方法会无限重试。getLock底层是hash,大key是userid,小key是线程,value是重入次数
try {
    //boolean b = lock.tryLock(1,5, TimeUnit.SECONDS);//设置失效时间,看门狗失效
    //看门机制不能设置失效时间  采用默认的失效时间30秒  (那重试时间怎么设置呢??还用不用设置??)
    boolean b = lock.tryLock();
    if (!b){
        throw new RuntimeException("频繁操作");
    }
    //从aop上下文中 获取当前类的代理对象
    IUserCouponService iUserCouponService = (IUserCouponService)AopContext.currentProxy();
    //checkAndCreateUserCoupon(userId, coupon, null);这种写法是调用原对象的方法
    iUserCouponService.checkAndCreateUserCoupon(userId, coupon, null);//这种写法调用代理对象的方法,方法是有事务处理的
}finally {
    lock.unlock();
}

unlock方法的校验当前锁的对象是否是当前线程id和删除锁操作时是原子操作

校验这个锁是不是自己线程的

相关推荐
DONG91313 分钟前
《三驾马车:MySQL、MongoDB、Redis对比与融合实战》
数据库·redis·sql·mysql·mongodb·database
郭京京4 小时前
go语言redis中使用lua脚本
redis·go·lua
shuair4 小时前
redis集群模式 -批量操作
redis
T007 小时前
保姆级教学--黑马点评,批量获取用户登录token及jemeter多线程测试
redis
Seven978 小时前
Redis支持事务吗?了解Redis的持久化机制吗?
redis
麦兜*9 小时前
【Prometheus】 + Grafana构建【Redis】智能监控告警体系
java·spring boot·redis·spring·spring cloud·grafana·prometheus
秋已杰爱10 小时前
Redis分布式锁
数据库·redis·分布式
haogexiaole18 小时前
Redis优缺点
数据库·redis·缓存
在未来等你18 小时前
Redis面试精讲 Day 27:Redis 7.0/8.0新特性深度解析
数据库·redis·缓存·面试
川石课堂软件测试19 小时前
技术干货|使用Prometheus+Grafana监控Tomcat实例详解
redis·功能测试·单元测试·tomcat·测试用例·grafana·prometheus