• Redis分布式锁


     

    public class DistributedRedisLock {
      //从配置类中获取redisson对象
      private static Redisson redisson = RedissonManager.getRedisson();
      private static final String LOCK_TITLE = "redisLock_01";
      //加锁
      public static boolean acquire(String lockName){
        //声明key对象
        String key = LOCK_TITLE + lockName;
        //获取锁对象
        RLock mylock = redisson.getLock(key);
        //加锁,并且设置锁过期时间,防止死锁的产生
        mylock.lock(2, TimeUnit.MINUTES);
        System.err.println("======lock======"+Thread.currentThread().getName());
        //加锁成功
        return true;
    }
      //锁的释放
      public static void release(String lockName){
        //必须是和加锁时的同一个key
        String key = LOCK_TITLE + lockName;
        //获取所对象
        RLock mylock = redisson.getLock(key);
        //释放锁(解锁)
        mylock.unlock();
        System.err.println("======unlock======"+Thread.currentThread().getName());
      }
    }

    业务逻辑中使用分布式锁

    @RequestMapping("/redder")
    @ResponseBody
    public String redder() throws IOException{
      String key = "test123";
      //加锁
      DistributedRedisLock.acquire(key);
      //执行具体业务逻辑
      dosoming
      //释放锁
      DistributedRedisLock.release(key);
      //返回结果
      return soming;
    }

    分布式锁提高性能

      分段加锁:相同的商品,分段存储,不同的key,可以提高效率

  • 相关阅读:
    Windows7安装SQL Server 2008图解
    【Android病毒分析报告】
    linux source命令学习
    SQL学习笔记——SQL初入门,Ubuntu下MySQL的安装
    挂断电话的实现(即类似于电话号码黑名单)
    35+雪花Logos设计灵感
    jdk8预览
    PL/SQL --> 动态SQL调用包中函数或过程
    VMware 彻底删除虚拟机操作系统的方法
    Ubuntu 16.04 LTS: apt-get update 失败处理 Aborted (core dumped)
  • 原文地址:https://www.cnblogs.com/flymili1017/p/13150536.html
Copyright © 2020-2023  润新知