PHP code example of hormone / memory-lock

1. Go to this page and download the library: Download hormone/memory-lock library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

hormone / memory-lock example snippets



{

    $redis = new \Redis();
    $redis->connect('127.0.0.1', 6379);
    
    $config = [
         // 适配器类型
        //'adapter'         => \Hormone\Lock\Config\LockConfig::REDIS_ADAPTER,

        // 内存锁获取时重试等待时间,单位为微秒。默认等待10ms,系统压力比较大,可以适当增大该时间值
        //'lockTimewait'    => 10000,

        // 设置重试次数,以保证不会到达PHP超时时间
        //'lockRetryTimes'  => 1000,

        // 内存锁过期时间,需要大于PHP脚本默认的超时时间30s
        //'lockTimeout'     => 35,

        //'lockPrefix'      => '_hm_lock_',
    ];
    \Hormone\Lock\LockManager::init($redis, $config);

    $key = 'lockKey1';
    \Hormone\Lock\LockManager::acquire($key);
    
    // do something
    var_dump("code");
    sleep(1);

} catch (\Exception $e) {
    // todo Exception

} finally {
    \Hormone\Lock\LockManager::release($key);
}


{

   $memcached = new \Memcached([
      'servers' => array('127.0.0.1:11211'),
   ]);
  
   $config = [
       // 适配器类型
      'adapter'         => \Hormone\Lock\Config\LockConfig::MEMCACHE_ADAPTER,

      // 内存锁获取时重试等待时间,单位为微秒。默认等待10ms,系统压力比较大,可以适当增大该时间值
      //'lockTimewait'    => 10000,

      // 设置重试次数,以保证不会到达PHP超时时间
      //'lockRetryTimes'  => 1000,

      // 内存锁过期时间,需要大于PHP脚本默认的超时时间30s
      //'lockTimeout'     => 35,

      //'lockPrefix'      => '_hm_lock_',
  ];
              
  \Hormone\Lock\LockManager::init($memcached, $config);

  $key = 'lockKey2';
  \Hormone\Lock\LockManager::acquire($key);

  // do something
  var_dump("code");
  sleep(1);

} catch (\Exception $e) {
  // todo Exception

} finally {
  \Hormone\Lock\LockManager::release($key);
}