RedisLock

RedisLock 是支持分布式的锁。

使用前需要配置 Redis 进程池。

类:Imi\Lock\Handler\Redis

Bean 名:RedisLock

可配置参数

  1. /**
  2. * 锁的唯一 ID
  3. *
  4. * @var string
  5. */
  6. protected $id;
  7. /**
  8. * 等待锁超时时间,单位:毫秒,0为不限制
  9. *
  10. * @var int
  11. */
  12. protected $waitTimeout = 3000;
  13. /**
  14. * 锁超时时间,单位:毫秒
  15. *
  16. * @var int
  17. */
  18. protected $lockExpire = 3000;
  19. /**
  20. * Redis 连接池名称
  21. *
  22. * @var string
  23. */
  24. public $poolName;
  25. /**
  26. * Redis 几号库
  27. *
  28. * @var integer
  29. */
  30. public $db = 0;
  31. /**
  32. * 获得锁每次尝试间隔,单位:毫秒
  33. *
  34. * @var int
  35. */
  36. public $waitSleepTime = 20;
  37. /**
  38. * Redis key
  39. *
  40. * @var string
  41. */
  42. public $key;
  43. /**
  44. * Redis key 前置
  45. *
  46. * @var string
  47. */
  48. public $keyPrefix = 'imi:lock:';

配置示例

  1. // 锁
  2. 'lock' =>[
  3. 'list' => [
  4. 'redis' => [
  5. 'class' => 'RedisLock',
  6. 'options' => [
  7. 'poolName' => 'redis_test',
  8. ],
  9. ],
  10. ],
  11. ],