首页 > 数据库 >redis-分布式锁样例

redis-分布式锁样例

时间:2023-06-27 12:14:55浏览次数:124  
标签:redisson 锁样 redis clientID result redissonLock lockKey redisTemplate 分布式

redisTemplate:

string lockKey = "product_101"
string clientID = UUID.randomUUID().toString()
bool result = redisTemplate.opsForValue().setIfAbsent(lockKey,clientID,10,TimeUnit.SECONDS)
if(!result)
{
  return "error_code"
}
try{
//业务逻辑
}finally{
  if(clientID.equals(redisTemplate.opsForValue().get(lockKey)))
  {
  redisTemplate.delete(lockKey)
  }
}

与注意事项对应关系如下所示
https://www.cnblogs.com/dengliang356a/p/17508140.html

redisson:

redissonLock = redisson.getLock(lockKey);
redissonLock.lock();
try{
//   逻辑
}finally{
  redissonLock.unlock();
}

标签:redisson,锁样,redis,clientID,result,redissonLock,lockKey,redisTemplate,分布式
From: https://www.cnblogs.com/dengliang356a/p/17508326.html

相关文章

  • python 批量删除 redis 大量数据
    #!/usr/bin/envpython#ScananddeletekeysinRedis.#Author:cdfivefromredisimportRedisimporttimedefRedisScanAndDelete(host,port,password,db,cursor,pattern,count,batch_delete_size):start_time=time.time()client=Redis(host......
  • 分布式锁的实现方式介绍和代码示例
    分布式锁的实现方式介绍分布式锁是一种用于分布式系统中实现互斥访问的机制。在分布式系统中,多个进程或线程可能同时访问共享资源,为了保证数据的一致性和正确性,需要使用分布式锁来实现资源的互斥访问。分布式锁的基本原理是通过在分布式环境下协调各个节点之间......
  • Java使用redis-Redis是并发安全的吗?
    大家都清楚,Redis 是一个开源的高性能键值对存储系统,被开发者广泛应用于缓存、消息队列、排行榜、计数器等场景。由于其高效的读写性能和丰富的数据类型,Redis 受到了越来越多开发者的青睐。然而,在并发操作下,Redis 是否能够保证数据的一致性和安全性呢?接下来小岳将跟大家一起来探......
  • redis-分布式锁注意事项
    lockKey:商品标识value:当前线程标识1.确保每把锁同一时间能且仅能上一次setnx(setifnotexists):当锁不存在时才上锁redisTemplate.opsForValue().setIfAbsent(lockKey,value)没加上锁需要返回错误码直接让其重试2.上锁成功后,需要在之后将锁释放redisTemplate.delete(l......
  • 分布式任务elasticjob整合springboot本地多服务启动(附源码)
    Elastic-Job是一个分布式调度的解决方案,由当当网开源,它由两个相互独立的子项目Elastic-Job-Lite和ElasticJob-Cloud组成,使用Elastic-Job可以快速实现分布式任务调度。Elastic-Job的github地址:https://github.com/elasticjob功能列表:分布式调度协调在分布式环境中,任务能够按指......
  • redis分布式锁实现
    @AutowiredprivateRedisTemplate<String,String>redisTemplate;//有死锁问题,设置锁的过期时间防止死锁publicvoidincr(){Booleanlock=redisTemplate.opsForValue().setIfAbsent("lock","1111"); //setnx,只有key不存在才能设置成功......
  • 分布式事务、CAP理论、BASE理论
    分布式事务、CAP理论、BASE理论什么是分布式事务?首先理解什么是本地事务?平常我们在程序中控制事务是利用数据库本身的事务特性来实现的,比如spring中的@Transactional注解,因此叫数据库事务。由于应用主要靠关系数据库来控制事务,此数据库只属于该应用,所以基于本应用自己的关......
  • redis初见
    redis介绍redis下载:1、官网:https://redis.io/-目前最稳定:6.x版本-最新版本:7.x2、中文网:http://redis.cn/download.html-上面最新只到5.x版本3、windows版本下载地址-redis官方不提供windows版本,但windows封装了一些安装包,使其可以安装在linux下......
  • 转载: redis中的bigkey问题
    reference:  https://www.modb.pro/db/459810 什么是bigkeybigkey就是rediskey/value体系中的大value问题。我们知道redis的底层数据存储结构中,有多种数据结构的实现。String:简单动态字符串List:双向链表、压缩列表 Hash:哈希表、压缩列表 SortedSet:跳表、压......
  • 基于docker部署redis
    Docker中部署redis一、在docker中拉去redis镜像dockerpullredis二、在本机给redis创建配置文件1.mkdir–p/root/docker/redis/conf2.上传redis自带的redis.conf到改目录下。注意:有可能xftp无法链接,可以先传到其他目录,在linux中移动到该目录3.编辑redis.conf配置文件3.1.把bind......