生产级高并发分布式锁
一、Redisson分布式锁原理

引入依赖
| <dependency> |
| <groupId>org.springframework.boot</groupId> |
| <artifactId>spring-boot-starter-data-redis</artifactId> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.redisson</groupId> |
| <artifactId>redisson</artifactId> |
| <version>3.6.5</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>redis.clients</groupId> |
| <artifactId>jedis</artifactId> |
| <version>2.9.0</version> |
| </dependency> |
| |
| @Bean |
| public Redisson redisson() { |
| |
| Config config = new Config(); |
| config.useSingleServer().setAddress("redis://localhost:6379").setDatabase(0); |
| return (Redisson) Redisson.create(config); |
| } |
| public String redlock() { |
| String lockKey = "product_001"; |
| |
| RLock lock1 = redisson.getLock(lockKey); |
| RLock lock2 = redisson.getLock(lockKey); |
| RLock lock3 = redisson.getLock(lockKey); |
| |
| |
| |
| |
| RedissonRedLock redLock = new RedissonRedLock(lock1, lock2, lock3); |
| try { |
| |
| |
| |
| |
| boolean res = redLock.tryLock(10, 30, TimeUnit.SECONDS); |
| if (res) { |
| |
| } |
| } catch (Exception e) { |
| throw new RuntimeException("lock fail"); |
| } finally { |
| |
| redLock.unlock(); |
| } |
| |
| return "end"; |
| } |
二、布隆过滤器
| public static void main(String[] args) { |
| Config config = new Config(); |
| config.useSingleServer().setAddress("redis://localhost:6379"); |
| |
| RedissonClient redisson = Redisson.create(config); |
| |
| RBloomFilter<String> bloomFilter = redisson.getBloomFilter("nameList"); |
| |
| bloomFilter.tryInit(100000L,0.03); |
| |
| bloomFilter.add("zhuge"); |
| bloomFilter.add("tuling"); |
| |
| |
| System.out.println(bloomFilter.contains("guojia")); |
| System.out.println(bloomFilter.contains("baiqi")); |
| System.out.println(bloomFilter.contains("zhuge")); |
| } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战