Qiang Xue
0b13c43466
|
11 years ago | |
---|---|---|
.. | ||
ActiveQuery.php | 11 years ago | |
ActiveRecord.php | 11 years ago | |
ActiveRelation.php | 11 years ago | |
Cache.php | 11 years ago | |
Connection.php | 11 years ago | |
LICENSE.md | 11 years ago | |
LuaScriptBuilder.php | 11 years ago | |
README.md | 11 years ago | |
composer.json | 11 years ago |
README.md
Redis Cache and ActiveRecord for Yii 2
This extension provides the redis key-value store support for the Yii2 framework.
It includes a Cache
class and implents the ActiveRecord
pattern that allows you to store active
records in redis.
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,
],
]
];
To use the Cache
component, you also have to configure the cache
component to be yii\redis\Cache
:
return [
//....
'components' => [
// ...
'cache' => [
'class' => 'yii\redis\Cache',
],
]
];
Installation
The preferred way to install this extension is through composer.
Either run
php composer.phar require yiisoft/yii2-redis "*"
or add
"yiisoft/yii2-redis": "*"
to the require section of your composer.json.
Using the redis ActiveRecord
For general information on how to use yii's ActiveRecord please refer to the guide.
For defining a redis ActiveRecord class your record class needs to extend from yii\redis\ActiveRecord
and
implement at least the attributes()
method to define the attributes of the record.
A primary key can be defined via primaryKey() which defaults to id
if not specified.
The primaryKey needs to be part of the attributes so make sure you have an id
attribute defined if you do
not specify your own primary key.
The following is an example model called Customer
:
class Customer extends \yii\redis\ActiveRecord
{
public function attributes()
{
return ['id', 'name', 'address', 'registration_date'];
}
}
The general usage of redis ActiveRecord is very similar to the database ActiveRecord as described in the guide. It supports the same interface and features except the following limitations:
- As redis does not support SQL the query API is limited to the following methods:
where()
,limit()
,offset()
,orderBy()
andindexBy()
. (orderBy() is not yet implemented: #1305) via
-relations can not be defined via a table as there are not tables in redis. You can only define relations via other records.
It is also possible to define relations from redis ActiveRecords to normal ActiveRecord classes and vice versa.