Spring Boot Redis 实现分布式锁,真香

本文介绍了如何在Spring Boot应用中使用Redis实现分布式锁,通过RedisLockRegistry配置及RedisLockService封装,展示了锁的使用示例和测试结果。同时,文章探讨了源码分析,特别是RedisLockRegistry的构造器、选项以及内部机制,强调了客户端ID和内存锁管理的重要性,以提高锁的性能和避免锁失效问题。
摘要由CSDN通过智能技术生成

@Bean(destroyMethod = “destroy”)

public RedisLockRegistry redisLockRegistry(RedisConnectionFactory redisConnectionFactory) {

return new RedisLockRegistry(redisConnectionFactory, “lock”);

}

使用示例

@GetMapping(“/redis/lock”)

public String lock(@RequestParam(“key”) String key) {

for (int i = 0; i < 10; i++) {

new Thread(() -> {

redisLockService.lock(key);            try {

Thread.sleep(3000L);

} catch (InterruptedException e) {

e.printStackTrace();            }            System.out.println(DateFormatUtils.format(new Date(), “yyyy-MM-dd HH:mm:ss”));

redisLockService.unlock(key);        }        ).start();    }    return “OK”;

}

RedisLockService 是我封装了的一个 Redis 锁服务,代码有点多,这里就不贴了,完整的代码示例在 Github 上,大家可以 Star 一下:

https://github.com/javasta

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值