RedisClusters.php 1.1 KB

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