Integration of Drupal with the Redis key-value store. It provides cache, lock and path optional backends as well as a placeholder module for contribution modules Redis easier usage.

This module already provides two alternative Redis clients.

Provided backends

Predis

Redis cache backend using the standalone Predis PHP library.

Requires PHP 5.3. Please read README.Predis.txt file for full install documentation.

This module works with both 7.x and 8.x main branches of the Predis library for the Redis 2.x series while Redis 3.x is 1.x compatible only.

PhpRedis

Redis cache backend using the well performing PhpRedis PHP extension.

Please read README.PhpRedis.txt file for configuration and documentation. PhpRedis is the recommended connector.

Failover, sharding and partionning

There are numerous support and feature request issues about client sharding, failover ability, multi-server connection, ability to read from slave and server clustering opened in the issue queue. Note that there is no one universally efficient solution for this: most of the solutions require that you cannot use the MULTI/EXEC command using more than one key, and that you cannot use complex UNION and intersection features anymore.

Until this module grows with (a) mature and stable solution(s) we recommend that you read the official Redis documentation page about partionning.

The best solution for clustering and sharding today seems to be the proxy assisted partionning using tools such as Twemproxy.

Proxy-assisted sharding is the recommended way of sharding cache with the this module. If you intend to do so please use the Redis 3.x branch of this module.

Additional information

  • Enabling the module serve no purpose except if another module is depending on it. If you enabled update status module, please enable it for update information, it will also provide usage statistics
  • You can tune Redis for cache handling, see http://redis.io/topics/config below section

Drupal 6 users

The provided cache backends works as-is when using Drupal 6 with the Cache Backport module.

Credits

Development

Makina Corpus | Contact us

Community

Great thanks to Irakli that granted me the commit access over this project.
Thanks to msonnabaum for the interest he shows for this modules and his numerous patches, and for his reactivity in finding critical bugs.
Thanks to David Strauss for patches.
Thanks to jtsnow for the smart design suggestions and patches.
Thanks to das-peter for a very peculiar bug fix, I would never have found this one.
Thanks to Berdir and Dave Reid for finding out that core tests were failing with this module.
Thanks to caiosba and Island Usurper for working out of the excessive cache clear problems.
Thanks to greggles for pushing this module to stable, and for the documentation fixes.
Thanks to omega8cc for her detailed important bug reports.
Thanks to SocialNicheGuru for testing the 3.x branch and giving me a lot of feedback.
The greatest thanks of all time to mja along with omega8cc for solving the deadlock problem. The later for working literally hours to find the source, the former for fixing it.
Thanks to mdupont for heavily testing the 3.x branch and providing resourceful feedback and patches for it.

Over the life of this module, this list can grow very long. Want to be quoted here? Open an issue!

Project Information

Downloads