Skip to content
This repository

About Predis

Predis is a flexible and feature-complete PHP client library for the Redis key-value store.

We are currently in the process of rewriting the whole wiki with new contents, documentation and tips!

Predis requires PHP >= 5.3 and it is entirely written in PHP so it can be used without the need to build and install a native extension for the interpreter, making it also easier and faster to add new features which is great given how fast the development of Redis proceeds.

The latest stable release is v0.8.3 and is available for download using different methods as described in the download page.

Main features

  • Wide range of Redis versions supported (from 1.2 to 2.6 and unstable) using server profiles.
  • Smart support for redis-cluster (Redis >= 3.0).
  • Client-side sharding via consistent hashing or custom distribution strategies.
  • Support for master / slave replication configurations (write on master, read from slaves).
  • Transparent key prefixing strategy capable of handling any command known that has keys in its arguments.
  • Command pipelining on single and aggregated connections.
  • Abstraction for Redis transactions (Redis >= 2.0) with support for CAS operations (Redis >= 2.2).
  • Abstraction for Lua scripting (Redis >= 2.6) capable of automatically switching between EVAL and EVALSHA.
  • Connections to Redis instances are lazily established upon the first call to a command by the client.
  • Ability to connect to Redis using TCP/IP or UNIX domain sockets with support for persistent connections.
  • Ability to specify alternative connection classes to use different types of network or protocol backends.
  • Flexible system to define and register your own set of commands or server profiles to client instances.

Quick tour

This quick tour gives you a quick introduction on how Predis can be configured and used. [OUTDATED: that page actually refers to Predis v0.6, we are still rewriting the whole wiki!]

Frameworks integration

Predis can be used as-is with any PHP web framework out there but sometimes it is easier to use ad-hoc extensions that make it blend nicely into their logic and common patterns. What follows is a list of such extensions created and maintained by the community:

The following modules require the PHP 5.2 backport of Predis 0.6:

Contributing

If you want to work on Predis, it is highly recommended that you first run the test suite in order to check that everything is OK, and report strange behaviours or bugs. When modifying Predis please make sure that no warnings or notices are emitted by PHP by running the interpreter in your development environment with the error_reporting variable set to E_ALL | E_STRICT.

The recommended way to contribute to Predis is to fork the project on GitHub, create new topic branches on your newly created repository to fix or add features (possibly with tests covering your modifications) and then open a new pull request with a description of the applied changes. Obviously you can use any other Git hosting provider of your preference.

License

The code for Predis is distributed under the terms of the MIT license.

Something went wrong with that request. Please try again.