summaryrefslogtreecommitdiff
path: root/inc/cache.php
diff options
context:
space:
mode:
authorMichael <savetheinternet@tinyboard.org>2013-01-27 21:32:28 -0800
committerMichael <savetheinternet@tinyboard.org>2013-01-27 21:32:28 -0800
commitfd33e9eba1e72fd4ee5f064944e9592be66c12c1 (patch)
tree8881262f81202ee5d112a180752969ae0455b7ed /inc/cache.php
parentf07e1564ae7a086e96bfc9d8d1176d9b510c0752 (diff)
parent970b6e83764fd3fd8f16af80a643647602067d9a (diff)
Merge pull request #96 from Macil/redis
Add Redis caching support
Diffstat (limited to 'inc/cache.php')
-rw-r--r--inc/cache.php23
1 files changed, 23 insertions, 0 deletions
diff --git a/inc/cache.php b/inc/cache.php
index 89ca865c..849748d4 100644
--- a/inc/cache.php
+++ b/inc/cache.php
@@ -19,6 +19,14 @@ class Cache {
self::$cache = new Memcached();
self::$cache->addServers($config['cache']['memcached']);
break;
+ case 'redis':
+ self::$cache = new Redis();
+ self::$cache->connect($config['cache']['redis'][0], $config['cache']['redis'][1]);
+ if ($config['cache']['redis'][2]) {
+ self::$cache->auth($config['cache']['redis'][2]);
+ }
+ self::$cache->select($config['cache']['redis'][3]) or die('cache select failure');
+ break;
case 'php':
self::$cache = array();
break;
@@ -45,6 +53,11 @@ class Cache {
case 'php':
$data = isset(self::$cache[$key]) ? self::$cache[$key] : false;
break;
+ case 'redis':
+ if (!self::$cache)
+ self::init();
+ $data = json_decode(self::$cache->get($key), true);
+ break;
}
// debug
@@ -68,6 +81,11 @@ class Cache {
self::init();
self::$cache->set($key, $value, $expires);
break;
+ case 'redis':
+ if (!self::$cache)
+ self::init();
+ self::$cache->setex($key, $expires, json_encode($value));
+ break;
case 'apc':
apc_store($key, $value, $expires);
break;
@@ -86,6 +104,7 @@ class Cache {
switch ($config['cache']['enabled']) {
case 'memcached':
+ case 'redis':
if (!self::$cache)
self::init();
self::$cache->delete($key);
@@ -114,6 +133,10 @@ class Cache {
case 'php':
self::$cache[$key] = array();
break;
+ case 'redis':
+ if (!self::$cache)
+ self::init();
+ return self::$cache->flushDB();
}
return false;