Redis with PHP (Predis)
To use Redis with PHP, you need a PHP Redis client.
Here, we show Predis, a flexible and feature-complete Redis client library for PHP version 5.3 and later.
Other Redis clients are available for PHP; see the PHP section of the Redis Clients page.
See the How to install and use Predis section of the Predis client’s README file for installation instructions.
The recommended method to install Predis is to use Composer and install it from Packagist or the dedicated PEAR channel.
You can also download the latest Predis release from the GitHub repository.
Connect to Redis
The following code creates a connection to Redis using Predis:
<?php require "predis/autoload.php"; Predis\Autoloader::register(); $redis = new Predis\Client(array( "scheme" => "tcp", "host" => "hostname", "port" => port, "password" => "password")); echo "Connected to Redis"; ?>
requireto load Predis and then call its
registermethod, as shown here. To learn more, see Loading the library.
To adapt this example to your code, replace the following values with your database’s values:
- In line 8, set
hostto your database’s hostname or IP address
- In line 9, set
portto your database’s port
- In line 10, set
passwordto your database’s password
Example code for Redis commands
Once connected to Redis, you can read and write data. The following code snippet assigns the value
bar to the Redis key
foo, reads it back, and prints it:
// open a connection to Redis ... $redis->set("foo", "bar"); $value = $redis->get("foo"); var_dump($value);
$ php predis_example.php Connected to Redis string(3) "bar"
Predis supports the use of persistent connections, which are recommended to minimize connection management overhead.
To enable persistent connections, use the
persistent connection attribute, as shown in the following code snippet:
$redis = new Predis\Client(array( "scheme" => "tcp", "host" => "hostname", "port" => port, "password" => "password", "persistent" => "1"));
As of v1.1.0, you can encrypt connections by specifying
rediss as the value of the
scheme attribute or as part of the URI.
In addition, you can configure connection parameters, as shown here:
// Named array of connection parameters: $client = new Predis\Client([ 'scheme' => 'tls', 'ssl' => ['cafile' => 'private.pem', 'verify_peer' => true], ]); // Same set of parameters, but using an URI string: $client = new Predis\Client('tls://127.0.0.1?ssl[cafile]=private.pem&ssl[verify_peer]=1');
To learn more, see Connecting to Redis.
When using earlier versions of Predis (which is not recommended), you can use stunnel or this Predis fork that has been added with SSL support.