Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Yii2 + Redis jako baza danych

Redis DB można zadeklarować jako pamięć podręczna komponent lub jako połączenie z bazą danych lub oba .

Kiedy jest zadeklarowany jako pamięć podręczna komponent (za pomocą yii/redis/cache ) jest dostępny w tym komponencie do przechowywania klucza/wartości pary, jak pokazano tutaj.

$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
);

Również inne komponenty mogą zacząć używać go do buforowania, np. session jeśli jest skonfigurowany do tego lub jak yii\web\UrlManager, który domyślnie będzie próbował buforować wygenerowane reguły URL w dowolnym poprawnym mechanizmie buforowania zdefiniowanym w cache pliku konfiguracyjnego komponent, jak wyjaśniono tutaj. W takim przypadku znalezienie przechowywanych danych innych niż Twoje jest więc normalne.

Gdy Redis jest zadeklarowany jako połączenie z bazą danych tak jak w linkach, które podałeś, co oznacza, że ​​używając klasy yii\redis\Connection, możesz sprawić, by twój model rozszerzył swoją klasę \yii\redis\ActiveRecord jak każdy inny model ActiveRecord w Yii. Jedyną różnicą, jaką znam do tej pory, jest to, że musisz ręcznie zdefiniować swoje atrybuty, ponieważ nie ma schematu DB do przeanalizowania pod kątem baz danych NoSQL. Następnie zdefiniuj swoje zasady, scenariusze, relacje, zdarzenia, ... jak każdy inny model ActiveRecord:

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() {...}
    ...
}

Wszystkie dostępne metody, w tym save() , validate() , getErrors() , ... można znaleźć tutaj i należy go używać jak każdej innej klasy ActiveRecord, jak pokazano w oficjalnym przewodniku.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Klucz wygasania danych Spring Data Redis

  2. Autouzupełnianie Redis

  3. Jak mogę znaleźć rozmiar tematu redis (podzbiór kluczy)?

  4. Uzyskaj indeks elementu według wartości na liście redis

  5. Jak zapisać i pobrać ciąg z akcentami w redis?