springboot分布式锁

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Redis 版,经济版 1GB 1个月
简介: springboot分布式锁

一、使用redis实现分布式锁

spirngboot使用redis:SpringBoot2.4.5使用redis缓存

@Autowired
RedisTemplate redisTemplate;
void test01() {
        String localKey = "lock01";
        //设置当前客户端ID
        String clentId = UUID.randomUUID().toString();
        try {
            //判断localKey是否存在,如果不存在,设置值,如果存在,不执行任务
            Boolean aBoolean = redisTemplate.opsForValue().setIfAbsent(localKey, clentId, 10, TimeUnit.SECONDS);
            if (!aBoolean) {
                return;
            }
            //    执行操作,子线程自动续期localKey的过期实践
        } finally {
            //避免A客户端,删除B客户端设置的锁
            if (clentId.equals(redisTemplate.opsForValue().get(localKey))) {
                //释放锁
                redisTemplate.delete(localKey);
            }
        }
    }

二、使用Redisson实现分布式锁

springboot使用redisson:springboot使用redisson

@Autowired
 Redisson redisson;
@Test
    void test02() {
        String localKey = "lock01";
        RLock lock = redisson.getLock(localKey);
        try {
            lock.lock();
        } finally {
            lock.unlock();
        }
    }
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
1天前
|
NoSQL 前端开发 Java
技术笔记:springboot分布式锁组件spring
技术笔记:springboot分布式锁组件spring
|
23小时前
|
存储 Java 数据库
Spring Boot与分布式事务的最佳实践
Spring Boot与分布式事务的最佳实践
|
23小时前
|
缓存 Java 机器人
Spring Boot中如何集成Hazelcast实现分布式缓存
Spring Boot中如何集成Hazelcast实现分布式缓存
|
1天前
|
监控 NoSQL Java
【面试高频 time:】SpringBoot整合Redisson实现分布式锁
【面试高频 time:】SpringBoot整合Redisson实现分布式锁
7 0
|
8天前
|
运维 监控 Java
SpringBoot-ElasticJob封装快速上手使用(分布式定时器)
SpringBoot-ElasticJob封装快速上手使用(分布式定时器)
|
1月前
Springboot-Jedis实现分布式锁
Springboot-Jedis实现分布式锁
28 0
|
1月前
|
编解码 NoSQL Java
Springboot框架使用redisson实现分布式锁
Redisson是官方推荐的Java Redis客户端,提供丰富的功能,包括默认的分布式锁支持。它可以无缝替代Spring Boot 2.x的Letture客户端,不影响原有RedisTemplate和Redis Repository的使用。集成包括spring-boot-starter-data-redis和redisson-spring-boot-starter,后者需排除默认的redisson-spring-data-23以匹配Spring Data Redis v.2.2.x。
|
3天前
|
NoSQL Redis
redis分布式锁redisson
底层会尝试去加锁,如果加锁失败,会睡眠,自旋加锁,直到获取到锁为止。
10 1
|
1天前
|
NoSQL 算法 Java
技术好文:Redis实现分布式锁的7种方案
技术好文:Redis实现分布式锁的7种方案
|
14天前
|
NoSQL 算法 Java
探讨redis分布式锁
探讨redis分布式锁
18 1

热门文章

最新文章