summaryrefslogtreecommitdiff
path: root/inc/cache.php
diff options
context:
space:
mode:
authorMichael Save <savetheinternet@tinyboard.org>2013-01-29 22:17:46 +1100
committerMichael Save <savetheinternet@tinyboard.org>2013-01-29 22:17:46 +1100
commit45f9b51ad85e087bafaa83ddb3d6a3547cafe315 (patch)
treebddced69d63c228c3501b7a0f4a6247fd9bcdbad /inc/cache.php
parent774e27caf5a8e4177b58006f54e31d9e94b14989 (diff)
parentfd33e9eba1e72fd4ee5f064944e9592be66c12c1 (diff)
Merge branch 'master' of github.com:savetheinternet/Tinyboard
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;