diff options
| author | Macil Tech <maciltech@gmail.com> | 2012-12-02 19:00:58 -0700 |
|---|---|---|
| committer | Macil Tech <maciltech@gmail.com> | 2013-01-22 20:22:16 -0600 |
| commit | 970b6e83764fd3fd8f16af80a643647602067d9a (patch) | |
| tree | 1501cb58941732bf6ca4abe94830aee98196e830 /inc | |
| parent | 7a68fc952548d3f275518f675888143d93e9148a (diff) | |
Add Redis caching support.
Compatible with the phpredis extension:
https://github.com/nicolasff/phpredis
Diffstat (limited to 'inc')
| -rw-r--r-- | inc/cache.php | 23 | ||||
| -rw-r--r-- | inc/config.php | 6 |
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 9e1147d7..04fae39a 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); /* * ==================== |
