Building and using this extension requires
hiredis (>=0.14, >=1.0) to be installed on the system.
hiredis is usually available in the repositories of most Linux distributions, alternatively it is
possible to build it by fetching the code from its repository.
git clone https://github.com/nrk/phpiredis.git cd phpiredis phpize && ./configure --enable-phpiredis make && make install
When the configuration script is unable to locate
hiredis on your system, you can specify in which
directory it can be found using
Phpiredis provides a basic test suite that can be launched with
make test. Tests require a running
redis-server listening on
127.0.0.1:6379 but make sure that your server does not
hold data you are interested: you could end up losing everything stored on it!
If you notice a failing test or a bug, you can contribute by opening a pull request on GitHub or simply file a bug on our issue tracker.
Connecting to Redis is as simple as calling the
phpiredis_connect() function with a server address
as the first parameter and an optional port number when the server is listening to a different port
than the default
$redis = phpiredis_connect('127.0.0.1', 6379); // normal connection $redis = phpiredis_pconnect('127.0.0.1', 6379); // persistent connection
Alternatively you can connect to redis using UNIX domain socket connections.
$redis = phpiredis_connect('/tmp/redis.sock'); // normal connection $redis = phpiredis_pconnect('/tmp/redis.sock'); // persistent connection
Once the connection is established, you can send commands to Redis using
pipeline them using
$response = phpiredis_command_bs($redis, array('DEL', 'test')); $response = phpiredis_multi_command_bs($redis, array( array('SET', 'test', '1'), array('GET', 'test'), ));
_bs suffix indicates that these functions can handle binary key names or values by using the
unified Redis protocol available since Redis >= 1.2.
Commands can still be sent using the old and deprecated inline protocol using
phpiredis_multi_command() (note the lack of the
_bs suffix) but it's highly discouraged and
these functions will be removed in future versions of phpiredis.
$response = phpiredis_command($redis, 'DEL test'); $response = phpiredis_multi_command($redis, array( 'SET test 1', 'GET test', ));
Any kind of contribution is extremely welcome! Just fork the project on GitHub, work on new features or bug fixes using feature branches and open pull-requests with concise but complete descriptions of your changes. If you are unsure about a proposal, you can just open an issue to discuss it before writing actual code.
The code for phpiredis is distributed under the terms of the BSD license (see LICENSE).