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();
    }
}
相关推荐
蜜獾云6 分钟前
设计模式之构造器模式:封装复杂对象的构造逻辑
java·开发语言·设计模式
无心水4 小时前
【OpenClaw:实战部署】5、全平台部署OpenClaw(Win/Mac/Linux/云服务器)——10分钟跑通第一个本地AI智能体
java·人工智能·ai·智能体·ai智能体·ai架构·openclaw
一只大袋鼠5 小时前
Redis 安装+基于短信验证码登录功能的完整实现
java·开发语言·数据库·redis·缓存·学习笔记
※DX3906※5 小时前
Java排序算法--全面详解面试中涉及的排序
java·开发语言·数据结构·面试·排序算法
yxy___5 小时前
达梦分布式集群DPC_分区表重建与性能优化操作指南_yxy
分布式·性能优化·分区表
走遍西兰花.jpg6 小时前
spark的shuffle原理及调优
大数据·分布式·spark
小邓睡不饱耶6 小时前
Spark 3.5.1 全栈实战指南:从环境部署到生产优化
大数据·分布式·spark
cur1es6 小时前
【JVM类加载&双亲委派模型&垃圾回收机制】
java·jvm·gc·垃圾回收·类加载·双亲委派模型
Mr.朱鹏7 小时前
JVM-GC垃圾回收案例
java·jvm·spring boot·算法·spring·spring cloud·java-ee
焦糖玛奇朵婷7 小时前
实测扭蛋机小程序:开发简单,互动有趣
java·大数据·程序人生·小程序·软件需求