• php实现redis锁机制


    <?php
    
    class Redis_lock
    {
    
        public static function getRedis()
        {
            $redis = new redis();
            $redis->connect('127.0.0.1', 3838, 0);
            $redis->auth('xxx');
            return $redis;
        }
    
        public static function lock($key, $expire = 60)
        {
            if(!$key) {
                return false;
            }
            $redis = self::getRedis();
            do {
                if($acquired = ($redis->setnx("Lock:{$key}", time()))) { // 如果redis不存在,则成功
                    $redis->expire($key, $expire);
                    break;
                }
    
                usleep($expire);
    
            } while (true);
    
            return true;
        }
    
        //释放锁
        public static function release($key)
        {
            if(!$key) {
                return false;
            }
            $redis = self::getRedis();
            $redis->del("Lock:{$key}");
            $redis->close();
        }
    
    
    }
    
    
    $redis = Redis_lock::getRedis();
    Redis_lock::lock('lock');
    $re = $redis->get('Sentiger');
    $re--;
    $redis->set('Sentiger', $re);
    Redis_lock::release('lock');
    
    
    
    ?>

    测试可以 用ab测试工具测试

  • 相关阅读:
    vue导出Excel表格(纯前端)
    Ubuntu16.04+CUDA8.0+CUNN5.1+caffe+tensorflow+Theano
    python高级特性
    顺序容器
    感知机和支持向量机
    IO库
    字符串、向量、数组、迭代器

    c++函数
    C++语句
  • 原文地址:https://www.cnblogs.com/shiwenhu/p/5303008.html
Copyright © 2020-2023  润新知