RedisDistributedLock 分布式锁

设计一个简单的 RedisDistributedLock 类,实现单例模式,并包含基本的锁定机制。这个类将使用 Redis 来管理锁,确保在分布式系统中资源的同步访问

java 复制代码
import redis.clients.jedis.Jedis;

public class RedisDistributedLock {
    private static RedisDistributedLock instance;
    private Jedis jedis;
    private final String redisHost;
    private final int redisPort;

    // 私有构造函数,防止外部实例化
    private RedisDistributedLock(String host, int port) {
        this.redisHost = host;
        this.redisPort = port;
        this.jedis = new Jedis(redisHost, redisPort);
    }

    // 公共静态方法,返回唯一实例
    public static synchronized RedisDistributedLock getSingletonInstance(String host, int port) {
        if (instance == null) {
            instance = new RedisDistributedLock(host, port);
        }
        return instance;
    }

    // 尝试获取锁
    public boolean lockTransaction(String transactionId) {
        String key = "lock:" + transactionId;
        String result = jedis.set(key, "locked", "NX", "EX", 10); // 锁超时时间为10秒
        return "OK".equals(result);
    }

    // 释放锁
    public void unlockTransaction(String transactionId) {
        String key = "lock:" + transactionId;
        jedis.del(key);
    }

    // 清理资源
    public void close() {
        jedis.close();
    }
}
相关推荐
是小崔啊1 小时前
开源轮子 - EasyExcel02(深入实践)
java·开源·excel
myNameGL2 小时前
linux安装idea
java·ide·intellij-idea
青春男大2 小时前
java栈--数据结构
java·开发语言·数据结构·学习·eclipse
HaiFan.2 小时前
SpringBoot 事务
java·数据库·spring boot·sql·mysql
我要学编程(ಥ_ಥ)3 小时前
一文详解“二叉树中的深搜“在算法中的应用
java·数据结构·算法·leetcode·深度优先
music0ant3 小时前
Idea 添加tomcat 并发布到tomcat
java·tomcat·intellij-idea
计算机徐师兄3 小时前
Java基于SSM框架的无中介租房系统小程序【附源码、文档】
java·微信小程序·小程序·无中介租房系统小程序·java无中介租房系统小程序·无中介租房微信小程序
源码哥_博纳软云3 小时前
JAVA智慧养老养老护理帮忙代办陪诊陪护小程序APP源码
java·开发语言·微信小程序·小程序·微信公众平台
忒可君4 小时前
C# winform 报错:类型“System.Int32”的对象无法转换为类型“System.Int16”。
java·开发语言
斌斌_____4 小时前
Spring Boot 配置文件的加载顺序
java·spring boot·后端