No Description

RdsLockService.php 827B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. namespace App\Services;
  3. use App\Support\RedisModel;
  4. class RdsLockService
  5. {
  6. /**
  7. * 获取锁键
  8. * @param $param
  9. * @return string
  10. */
  11. public static function getRdsLockKey($param)
  12. {
  13. $lockPre = 'LOCK_';
  14. $paramStr = '';
  15. foreach ($param as $item) {
  16. if (empty($paramStr)) {
  17. $paramStr = $item;
  18. } else {
  19. $paramStr .= ('-'.$item);
  20. }
  21. }
  22. return $lockPre.$paramStr;
  23. }
  24. public static function addRdsLock($lockKey)
  25. {
  26. $lockRes = RedisModel::setnx($lockKey, 1);
  27. if ($lockRes) RedisModel::expire($lockKey, 5); # 设定锁的过期时间
  28. return $lockRes;
  29. }
  30. public static function delRdsLock($lockKey)
  31. {
  32. RedisModel::del($lockKey);
  33. }
  34. }