A WordPress object cache backend that implements all available methods using Redis and the Predis library for PHP.
A WordPress object cache backend that implements all available methods using Redis and either the Redis PECL library or the Predis library for PHP.
## Authors
## Authors
* Eric Mann
* Eric Mann
* Erick Hitter
## Installation
## Installation
1. Install and configure Redis. There is a good tutorial [here](http://www.saltwebsites.com/2012/install-redis-245-service-centos-6).
1. Install and configure Redis. There is a good tutorial [here](http://www.saltwebsites.com/2012/install-redis-245-service-centos-6).
2. Install Predis (included in this repository as a submodule) in the `/wp-content/predis` directory, since that's where the object cache expects it to reside.
2. Install the [Redis PECL module](http://pecl.php.net/package/redis) or the Predis library (included in this repository as a submodule) in the `/wp-content/predis` directory (since that's where the object cache expects it to reside if it's to be used).
3. Add object-cache.php to the wp-content directory. It is a drop-in file, not a plugin, so it belongs in the wp-content directory, not the plugins directory.
3. Add `object-cache.php` to the wp-content directory. It is a drop-in file, not a plugin, so it belongs in the wp-content directory, not the plugins directory.
4. By default, the script will connect to Redis at 127.0.0.1:6379.
4. By default, the script will connect to Redis at 127.0.0.1:6379. See the *Connecting to Redis* section for further options.
### Connecting to Redis ###
### Connecting to Redis ###
By default Predis uses `127.0.0.1` and `6379` as the default host and port when creating a new client
By default, the plugin uses `127.0.0.1` and `6379` as the default host and port when creating a new client instance; the default database of `0` is also used. Three constants are provided to override these default values.
instance without specifying any connection parameter:
```php
Specify `WP_REDIS_BACKEND_HOST`, `WP_REDIS_BACKEND_PORT`, and `WP_REDIS_BACKEND_DB` to set the necessary, non-default connection values for your Redis instance.
$redis=newPredis\Client();
$redis->set('foo','bar');
$value=$redis->get('foo');
```
It is possible to specify the various connection parameters using URI strings or named arrays:
### Prefixing Cache Keys ###
The constant `WP_CACHE_KEY_SALT` is provided to add a prefix to all cache keys used by the plugin. If running two single instances of WordPress from the same Redis instance, this constant could be used to avoid overlap in cache keys. Note that special handling is not needed for WordPress Multisite.
Object caching backend using Redis for persistent storage. Implements all methods specified by WordPress Core. Supports multisite.
The plugin supports both the [Redis PECL module](http://pecl.php.net/package/redis) and the [Predis library](https://github.com/nrk/predis) to connect to Redis.
**You must install the Redis server before using this plugin!**
== Installation ==
1. Install and configure Redis. There is a good tutorial [here](http://www.saltwebsites.com/2012/install-redis-245-service-centos-6).
2. Install the [Redis PECL module](http://pecl.php.net/package/redis) or place the Predis library in the `/wp-content/predis` directory.
3. Add `object-cache.php` to the `wp-content` directory. It is a drop-in file, not a plugin, so it belongs in the `wp-content` directory, not the `plugins` directory.
4. By default, the script will connect to Redis at 127.0.0.1:6379. See the *Connecting to Redis* FAQ for further options.
== Frequently Asked Questions ==
= Connecting to Redis =
By default, the plugin uses `127.0.0.1` and `6379` as the default host and port when creating a new client instance; the default database of `0` is also used. Three constants are provided to override these default values.
Specify `WP_REDIS_BACKEND_HOST`, `WP_REDIS_BACKEND_PORT`, and `WP_REDIS_BACKEND_DB` to set the necessary, non-default connection values for your Redis instance.
= Prefixing Cache Keys =
The constant `WP_CACHE_KEY_SALT` is provided to add a prefix to all cache keys used by the plugin. If running two single instances of WordPress from the same Redis instance, this constant could be used to avoid overlap in cache keys. Note that special handling is not needed for WordPress Multisite.