summaryrefslogtreecommitdiff
path: root/inc
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
parentf07e1564ae7a086e96bfc9d8d1176d9b510c0752 (diff)
parent970b6e83764fd3fd8f16af80a643647602067d9a (diff)
Merge pull request #96 from Macil/redis
Add Redis caching support
Diffstat (limited to 'inc')
-rw-r--r--inc/cache.php23
-rw-r--r--inc/config.php6
2 files changed, 29 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;
diff --git a/inc/config.php b/inc/config.php
index 8bd6d357..cedf3e06 100644
--- a/inc/config.php
+++ b/inc/config.php
@@ -91,6 +91,7 @@
$config['cache']['enabled'] = false;
// $config['cache']['enabled'] = 'memcached';
+ // $config['cache']['enabled'] = 'redis';
// $config['cache']['enabled'] = 'apc';
// $config['cache']['enabled'] = 'xcache';
@@ -104,6 +105,11 @@
$config['cache']['memcached'] = array(
array('localhost', 11211)
);
+
+ // Redis server to use. Location, port, password, database id.
+ // Note that Tinyboard may clear the database at times, so you may want to pick a
+ // database id just for Tinyboard to use.
+ $config['cache']['redis'] = array('localhost', 6379, '', 1);
/*
* ====================