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和删除锁操作时是原子操作

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

相关推荐
A尘埃18 分钟前
K8S有状态服务部署(MySQL、Redis、ES、RabbitMQ、Nacos、ZipKin、Sentinel)
redis·mysql·kubernetes
免檒31 分钟前
go基于redis+jwt进行用户认证和权限控制
开发语言·redis·golang
weixin_307779134 小时前
使用FastAPI和Apache Flink构建跨环境数据管道
redis·python·云计算·fastapi·aws
我可是ikun啊5 小时前
Redis经典面试题
数据库·redis·缓存
JavaAlpha9 小时前
高频面试题:设计秒杀系统,用Redis+Lua解决超卖
数据库·redis·lua
天上掉下来个程小白12 小时前
缓存套餐-01.Spring Cache入门案例
java·redis·spring·缓存·springboot·springcache
大慕慕好懒13 小时前
redis未授权访问
redis·网络安全·渗透·ssrf
chunfeng—14 小时前
Redis 主从同步与对象模型(四)
数据库·redis·缓存·集群·哨兵
张哈大15 小时前
【 Redis | 实战篇 缓存 】
数据库·redis·笔记·spring·缓存
小杜-coding1 天前
黑马点评day04(分布式锁-setnx)
java·spring boot·redis·分布式·spring·java-ee·mybatis