redis setIfAbsent的用法

需求

正式环境多实例情况下 使用消息总线发送消息 接受了多次问题 现在让他只接收一次 且不重复

		//互斥Key
        final String lockKey = "profit_"+vo.getRefundOrderNo();
        // true-加锁成功
        boolean isSuccess = RedisUtils.getRedisStringTemplate().opsForValue().setIfAbsent(lockKey, vo.getRefundOrderNo(), Constant.TEN, TimeUnit.MINUTES);
        if (!isSuccess) {
            log.info("分润-{}. id:{}. lockKey:{}. 加锁失败!", "退款分润" ,vo.getRefundOrderNo(), lockKey);
            return;
        }
        //        RedisUtils.getRedisStringTemplate().delete(lockKey); 

你可能感兴趣的:(学习类,redis,java,数据库)