Redis DB dapat dideklarasikan sebagai cache komponen atau sebagai koneksi database atau keduanya .
Saat dideklarasikan sebagai cache komponen (menggunakan yii/redis/cache ) dapat diakses di dalam komponen itu untuk menyimpan kunci/nilai pasang seperti yang ditunjukkan di sini.
$cache = Yii::$app->cache;
// try retrieving $data from cache
$data = $cache->get($key);
// store $data in cache so that it can be retrieved next time
$cache->set($key, $data);
// one more example:
$access_token = Yii::$app->security->generateRandomString();
$cache->add(
// key
$access_token,
// data (can also be an array)
[
'id' => Yii::$app->user->identity->id
'name' => Yii::$app->user->identity->name
],
// expires
60*60*3
);
Juga komponen lain mungkin mulai menggunakannya untuk caching usulan seperti session
jika dikonfigurasi untuk melakukannya atau menyukai yii\web\UrlManager yang secara default akan mencoba men-cache aturan URL yang dihasilkan dalam mekanisme caching valid apa pun yang ditentukan di bawah cache
file konfigurasi komponen seperti yang dijelaskan di sini. Jadi, normal untuk menemukan beberapa data yang disimpan selain milik Anda dalam kasus itu.
Saat Redis dideklarasikan sebagai koneksi DB seperti pada tautan yang Anda berikan yang berarti menggunakan kelas yii\redis\Connection Anda dapat membuat model Anda memperluas kelas \yii\redis\ActiveRecord seperti model ActiveRecord lainnya di Yii. Satu-satunya perbedaan yang saya tahu sejauh ini adalah Anda perlu mendefinisikan atribut Anda secara manual karena tidak ada skema DB untuk diurai untuk database NoSQL. Kemudian cukup tentukan aturan, skenario, relasi, peristiwa, ... seperti model ActiveRecord lainnya:
class Customer extends \yii\redis\ActiveRecord
{
public function attributes()
{
return ['id', 'name', 'address', 'registration_date'];
}
public function rules()
{
return [
['name', 'required'],
['name', 'string', 'min' => 3, 'max' => 12, 'on' => 'register'],
...
];
}
public function attributeLabels() {...}
...
}
Semua metode yang tersedia termasuk save()
, validate()
, getErrors()
, ... dapat ditemukan di sini dan harus digunakan seperti kelas ActiveRecord lainnya seperti yang ditunjukkan dalam panduan resmi.