zoukankan      html  css  js  c++  java
  • 分布式锁

    目前实现分布式锁的方式主要有数据库、Redis和Zookeeper三种,本文主要阐述利用Redis的相关命令来实现分布式锁。

    一、使用分布式锁要满足的几个条件:

    1. 系统是一个分布式系统(关键是分布式,单机的可以使用ReentrantLock或者synchronized代码块来实现)
    2. 共享资源(各个系统访问同一个资源,资源的载体可能是传统关系型数据库或者NoSQL)
    3. 同步访问(即有很多个进程同事访问同一个共享资源。没有同步访问,谁管你资源竞争不竞争)

    使用Redis实现分布式锁及其优化

    -- 主要是用到了redis的SETNX命令,使锁的操作具有原子性。同时在锁中记录随机串,防止锁先于业务处理结束超时,别人重新申请了锁,误删别人的锁。

     http://mzorro.me/2017/10/25/redis-distributed-lock/

    Redlock算法

    -- 这个主要在其他基础上解决了分布式非一致性redis情况下的处理方式

    http://zhangtielei.com/posts/blog-redlock-reasoning.html

    Redlock的算法描述就放在Redis的官网上:

    分布式服务框架 Zookeeper -- 管理分布式环境中的数据

    https://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/

  • 相关阅读:
    详解softmax函数以及相关求导过程 (转载自知乎)
    每日算法
    每日算法
    每日算法
    每日算法
    每日算法
    广度优先搜索算法
    java实现fp-growth算法
    频繁项集挖掘之Aprior和FPGrowth算法
    频繁项集挖掘之apriori和fp-growth
  • 原文地址:https://www.cnblogs.com/aoyihuashao/p/8762401.html
Copyright © 2011-2022 走看看