Database.php 845 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <?php
  2. namespace app\framework\Redis;
  3. use Closure;
  4. use Illuminate\Redis\RedisManager;
  5. use Illuminate\Support\Facades\Redis;
  6. class Database extends RedisManager
  7. {
  8. public function refresh()
  9. {
  10. app('redis')->disconnect();
  11. app('cache')->store('redis')->connection()->disconnect();
  12. app()->forgetInstance('redis');
  13. Redis::clearResolvedInstance('redis');
  14. }
  15. public function lock($key, $identification, $expireTime = 60)
  16. {
  17. while (true) {
  18. $lock = $this->get($key);
  19. if (isset($lock) and $lock != $identification) {
  20. sleep(0.1);
  21. } else {
  22. break;
  23. }
  24. }
  25. return $this->setex($key, $expireTime, $identification);
  26. }
  27. public function unlock($key)
  28. {
  29. return $this->del($key);
  30. }
  31. }