RedisClusters.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace App\Tools;
  3. use Illuminate\Support\Facades\Redis;
  4. use Illuminate\Support\Facades\Log;
  5. class RedisClusters
  6. {
  7. public static function remember($key, $expire, $callback)
  8. {
  9. if (Redis::exists($key)) {
  10. return json_decode(Redis::get($key), true);
  11. } else {
  12. $valueOrg = $callback();
  13. if ($valueOrg === null) {
  14. $value = null;
  15. } else {
  16. $value = json_encode($valueOrg, JSON_UNESCAPED_UNICODE);
  17. }
  18. Redis::set($key, $value);
  19. Redis::expire($key, $expire);
  20. return $valueOrg;
  21. }
  22. }
  23. public static function put($key, $value, $expire = null)
  24. {
  25. $value = json_encode($value, JSON_UNESCAPED_UNICODE);
  26. Redis::set($key, $value);
  27. if ($expire) {
  28. Redis::expire($key, $expire);
  29. }
  30. return $value;
  31. }
  32. public static function get($key)
  33. {
  34. return json_decode(Redis::get($key), true);
  35. }
  36. public static function forget($key)
  37. {
  38. Log::debug('forget start redis key=' . $key . ' has=' . Redis::exists($key));
  39. $del = Redis::del($key);
  40. Log::debug('forget end redis key=' . $key . ' has=' . Redis::exists($key) . ' del=' . $del);
  41. return $del;
  42. }
  43. public static function has($key)
  44. {
  45. return Redis::exists($key);
  46. }
  47. }