redis实现分布式锁

本文介绍了如何利用Redis来实现分布式锁的功能,通过初始化Jedis Bean进行相关操作,为分布式环境中的资源访问提供锁机制。
摘要由CSDN通过智能技术生成
package com.greattao.egtcp.purchase.common;

import com.cy.framework.service.impl.DataException;
import lombok.extern.slf4j.Slf4j;
import redis.clients.jedis.Jedis;

import javax.annotation.Resource;
import java.util.Collections;

@Slf4j
@Component
public class RedisTool {

    private static final String LOCK_SUCCESS = "OK";
    private static final String SET_IF_NOT_EXIST = "NX";
    //EX是秒,PX是毫秒
    private static final String SET_WITH_EXPIRE_TIME = "PX";
    private static final Long RELEASE_SUCCESS = 1L;

    @Resource
    private Jedis jedis;

    /**
     * 尝试获取分布式锁
     * @param lockKey 锁
     * @param requestId 请求标识
     * @param expireTime 超期时间
     * @param acquireTimeout 请求锁的超时时间 单位/毫秒
     * @return 是否获取成功
     */
    public boolean tryGetDistributedLock(String lockKey, String requestId, int expireTime,long acquireTimeout) {
        long end = System.currentTimeMillis(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值