zoukankan      html  css  js  c++  java
  • Redis系列-好玩的用法

    分布式锁

    客户端执行如下命令,来获取锁和释放锁。

    random = random()
    ok = (Set key random PX 2000ms NX)
    if (ok) {
        //do something
        if (redis->get(key) == random) {
            (del key)
        }
    }

    key不存在时设置,过期时间是2000ms。如果命令成功,表示获取锁成功。
    设置过期时间是为了解决获得锁的客户端意外终止产生死锁现象。释放锁时,先判断key的value是否是自己生成的,如果是再删除锁。这是为了避免因操作超时,锁被自动释放,其他客户端已经获取了锁,当前客户端误删锁。

  • 相关阅读:
    unit 21
    unit 20
    unit 19
    第十八单元
    17 unit
    ES 中文分词
    ES 的CRUD 简单操作(小试牛刀)
    ES 必备插件的安装
    ES的安装运行
    JAVA_HOME 的设置
  • 原文地址:https://www.cnblogs.com/whuqin/p/4981951.html
Copyright © 2011-2022 走看看