Redis 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <?php
  2. use Predis\Client;
  3. /**
  4. * \Redis
  5. */
  6. class Redis
  7. {
  8. const CONFIG_FILE = '/Config/redis.php';
  9. protected static $redis;
  10. public static function init()
  11. {
  12. self::$redis = new Client(require BASE_PATH.self::CONFIG_FILE);
  13. }
  14. public static function set($key,$value,$time=null,$unit=null)
  15. {
  16. self::init();
  17. if ($time) {
  18. switch ($unit) {
  19. case 'h':
  20. $time *= 3600;
  21. break;
  22. case 'm':
  23. $time *= 60;
  24. break;
  25. case 's':
  26. case 'ms':
  27. break;
  28. default:
  29. throw new InvalidArgumentException('单位只能是 h m s ms');
  30. break;
  31. }
  32. if ($unit=='ms') {
  33. self::_psetex($key,$value,$time);
  34. } else {
  35. self::_setex($key,$value,$time);
  36. }
  37. } else {
  38. self::$redis->set($key,$value);
  39. }
  40. }
  41. public static function get($key)
  42. {
  43. self::init();
  44. return self::$redis->get($key);
  45. }
  46. public static function delete($key)
  47. {
  48. self::init();
  49. return self::$redis->del($key);
  50. }
  51. private static function _setex($key,$value,$time)
  52. {
  53. self::$redis->setex($key,$time,$value);
  54. }
  55. private static function _psetex($key,$value,$time)
  56. {
  57. self::$redis->psetex($key,$time,$value);
  58. }
  59. }