Skip to content

yiisoft/yii2-redis

Repository files navigation

Redis Cache, Session and ActiveRecord for Yii 2


This extension provides the redis key-value store support for the Yii framework 2.0. It includes a Cache and Session storage handler and implements the ActiveRecord pattern that allows you to store active records in redis.

For license information check the LICENSE-file.

Documentation is at docs/guide/README.md.

Latest Stable Version Total Downloads Build status

Requirements

At least redis version is required for all components to work properly.

Installation

Important

  • The minimum required PHP version is PHP 7.4.
  • It works best with PHP 8.

The preferred way to install this extension is through composer.

Either run

php composer.phar require --prefer-dist yiisoft/yii2-redis:"~2.1.0"

or add

"yiisoft/yii2-redis": "~2.1.0"

to the require section of your composer.json.

Configuration

To use this extension, you have to configure the Connection class in your application configuration:

return [
    //....
    'components' => [
        'redis' => [
            'class' => 'yii\redis\Connection',
            'hostname' => 'localhost',
            'port' => 6379,
            'database' => 0,
        ],
    ]
];

SSL configuration example:

return [
    //....
    'components' => [
        'redis' => [
            'class' => 'yii\redis\Connection',
            'hostname' => 'localhost',
            'port' => 6380,
            'database' => 0,
            'useSSL' => true,
            // Use contextOptions for more control over the connection (https://www.php.net/manual/en/context.php), not usually needed
            'contextOptions' => [
                'ssl' => [
                    'local_cert' => '/path/to/local/certificate',
                    'local_pk' => '/path/to/local/private_key',
                ],
            ],
        ],
    ],
];

Configuring The Connection Scheme

By default, Redis will use the tcp scheme when connecting to your Redis server; however, you may use TLS / SSL encryption by specifying a scheme configuration option in your application configuration:

return [
    //....
    'components' => [
        'redis' => [
            //....
            'scheme' => 'tls'
        ]
    ]
];

Additional topics