美文网首页
redis缓存实现分布式锁

redis缓存实现分布式锁

作者: 搬砖中年人 | 来源:发表于2019-03-12 20:34 被阅读0次

 private static void lineLock(String lockkey) throws Exception {

        try (Jedis jedis = _JedisPoolHash.getJedis();) {

            //如果 ==0 代表存在 进入循环 等待获取锁

            while (jedis.setnx(lockkey, String.valueOf(System.currentTimeMillis() + 5000)) == 0) {

                //当前时间大于过期时间的前提下 必须大于 旧的值 并同时设置新的值如果不大于旧的值证明被其他机器并行设置了,则继续等待锁释放或过期

                if (System.currentTimeMillis() > Long.valueOf(jedis.get(lockkey)) && System.currentTimeMillis() > Long

                        .valueOf(jedis.getSet(lockkey, String.valueOf(System.currentTimeMillis() + 5000)))) {

                    break;

                }

                try {

                    Thread.sleep(250);

                } catch (InterruptedException e) {

                    e.printStackTrace();

                }

            }

        }

    }

相关文章

  • 分布式锁实现

    基于数据库实现分布式锁基于缓存(redis,memcached)实现分布式锁基于Zookeeper实现分布式锁 s...

  • 基于redis的分布式锁

    分布式锁实现方案 基于数据库实现分布式锁 基于缓存(redis,memcached,tair)实现分布式锁 基于Z...

  • 分布式锁

    几种实现方式 基于数据库实现分布式锁 基于缓存(Redis,memcached,tair)实现分布式锁 基于Zoo...

  • golang作业帮面试

    1.channel实现 go调度原理 select和epoll的区别 redis分布式锁 redis缓存穿透,缓存...

  • 分布式锁的实现-Redisson

    常见3种分布式的实现比较 基于数据库实现分布式锁 基于缓存实现分布式锁(redis,mc) 基于Zookeeper...

  • 分布式锁的实现方案

    一,分布式锁的实现方案 1,基于数据库实现分布式锁 2,基于缓存实现数据库锁(redis) 3,基于zookeep...

  • 分布式锁三种实现方式(数据库实现,缓存Redis等,Zookee

    分布式锁三种实现方式: 1. 基于数据库实现分布式锁; 2. 基于缓存(Redis等)实现分布式锁; 3. 基于Z...

  • 大佬浅谈分布式锁

    redis 实现 redis 分布锁一、redis 实现分布式锁(可重入锁)redission 实现分布式锁1、对...

  • Zookeeper实现分布式锁(一)While版

    前面文章讲解了用Redis实现分布式锁的方式: 分布式锁之Redis实现(acquire)分布式锁之Redis实现...

  • 基于redis实现的分布式锁

    本文要点 基于redis实现分布式锁demo 基于redis实现分布式锁原理 基于redis实现分布式锁优缺点 正...

网友评论

      本文标题:redis缓存实现分布式锁

      本文链接:https://www.haomeiwen.com/subject/qhdopqtx.html