redis分布式锁实现

2 篇文章 0 订阅
2 篇文章 0 订阅
本文档介绍了如何使用Redisson来实现Redis分布式锁,以解决使用Jedis时可能遇到的问题。示例代码展示了在Spring Boot应用中配置Redisson客户端,并在Controller层通过Redisson的RLock接口获取和释放锁,确保并发操作的安全。
摘要由CSDN通过智能技术生成

这里写目录标题

redis分布式锁的实现

本文作为刚初学redis分布式锁的个人整理文档,防止忘掉
1.一般使用jedis 实现分布式锁,总会面临各种问题,对于这些问题的处理,redisson 就应运而生了.通过redisson可以轻松处理redis分布式锁面临的大多数问题,

@SpringBootApplication
public class RedisApplication {
    public static void main(String[] args) {

        SpringApplication.run(RedisApplication.class, args);
    }
//通过Config 将设置好的客户端注入spring容器中,可以直接进行使用

    @Bean
    public Redisson getRedisson() {

        Config config = new Config();

// 这里是对于redis集群的处理方法
//如果是单机模式的话, 可以说过config.useSingleServer()进行设置
        config.useClusterServers().addNodeAddress("redis://192.168.31.81:6379", "redis://192.168.31.81:6380", "redis://192.168.31.81:6381");
        return (Redisson) Redisson.create(config);

    }
}

controller层的方法的书写—进行redis分布式锁的实现

@RestController
@RequestMapping("redis")
public class RedisController {
    @Autowired
    private Redisson redisson;
    private String LOCK_REDIS="gao";

    @PostMapping("lock")
    public ResponseEntity<String> getLock(){
        
        RLock lock = redisson.getLock(LOCK_REDIS);
//        锁的过期时间
        lock.lock(40, TimeUnit.SECONDS);
        System.out.println("拉阿拉阿拉");
        try {
        // 通过设置线程休眠时间,能观察到分布式锁的运行过程.
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        lock.unlock();
        return ResponseEntity.ok("ok");
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值