<?php
|
|
namespace p3k;
|
|
|
|
class Cache {
|
|
private static $redis;
|
|
|
|
public static function redis($config=false) {
|
|
if(empty(self::$redis)) {
|
|
if($config) {
|
|
self::$redis = new \Predis\Client($config);
|
|
} else {
|
|
self::$redis = new \Predis\Client('tcp://127.0.0.1:6379');
|
|
}
|
|
}
|
|
return self::$redis;
|
|
}
|
|
|
|
public static function reset() {
|
|
self::$redis = null;
|
|
}
|
|
|
|
public static function set($key, $value, $exp=600) {
|
|
self::redis();
|
|
if($exp) {
|
|
self::$redis->setex($key, $exp, json_encode($value));
|
|
} else {
|
|
self::$redis->set($key, json_encode($value));
|
|
}
|
|
}
|
|
|
|
public static function get($key, $default=null) {
|
|
self::redis();
|
|
$data = self::$redis->get($key);
|
|
if($data) {
|
|
return json_decode($data);
|
|
} else {
|
|
return $default;
|
|
}
|
|
}
|
|
|
|
public static function delete($key) {
|
|
self::redis();
|
|
return self::$redis->del($key);
|
|
}
|
|
|
|
public static function expire($key, $seconds=0) {
|
|
self::redis();
|
|
if($seconds)
|
|
return self::$redis->expire($key, $seconds);
|
|
else
|
|
return self::$redis->del($key);
|
|
}
|
|
|
|
public static function incr($key, $value=1) {
|
|
self::redis();
|
|
return self::$redis->incrby($key, $value);
|
|
}
|
|
|
|
public static function decr($key, $value=1) {
|
|
self::redis();
|
|
return self::$redis->decrby($key, $value);
|
|
}
|
|
|
|
}
|
|
|