Redis is key/value persistent database. It's faster than APC, distributed like Memcache and most of all, it's not volatile. On server restart, or shutdown, data will remain and even better, the lifetime of cached data is still calculated.
This plugin intends to make Redis server usable as a cache backend method for your factories, or directly, within your code.
Notice: despite the cache backend accepts a compiled Redis class, it requires to have at least the expire
method.
see LICENSE file
You need to have at least a decent Redis PHP class supporting those methods:
- connect
- delete
- exists
- expire
- get
- keys
- mget
- ping
- set
So far, it has been unit-tested with the debian package libphp-redis
.
You can find out some other − yet unsupported − libraries:
- Predis
- Rediska
- phpredis (initial compiled library)
- phpredis fork (improved compiled library)
You can install easily the plugin through symfony CLI: symfony plugin:install sfRedisCachePlugin
Or through SVN repository by adding the following svn:external: sfRedisCachePlugin http://svn.symfony-project.com/plugins/sfRedisCachePlugin/trunk/
Notice: the trunk will one day branched if any compatibility issues appears.
The main purpose of sfRedisCachePlugin is to use it as a cache backend for your factories.yml. For example:
view_cache:
class: sfRedisCache
param:
host: 127.0.0.1
mode: shared
port: 6379
prefix: %SF_APP_DIR%/template
As the class extends sfCache class, it follows the same usage.
The class accepts some option parameters:
- class': the Redis class we try to load (default to Redis)
- mode: Defines if we work with the "compiled" (faster) or "shared" (easier) library (default to "shared")
- host: The default server (default to 127.0.0.1)
- port: The default port (default to 6379)
- redis: a redis object (not mandatory)
- Support for clustering
- Include autoloader