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

Jak skonfigurować Yii2 z konfiguracją Redis?

W moim poprzednim artykule o Yii2 omówiłem, jak zainstalować i używać elasticsearch z Yii. W innym artykule zademonstrowałem możliwości frameworka Yii2 za pomocą prostej aplikacji do zrobienia. Dzisiaj pokażę, jak używać Redisa jako pamięci podręcznej i obsługi sesji dla Yii2. W moich poprzednich artykułach na temat Redis omówiłem wykorzystanie Redis jako pamięci podręcznej z niestandardowymi witrynami PHP i Redis do zarządzania sesjami PHP.

Aby zainstalować Redis na Cloudways, przejrzyj mój artykuł, do którego link znajduje się powyżej.

Krok 1:Instalacja rozszerzenia Redis dla Yii 2

Otwórz plik composer.json plik i dodaj następujący wiersz w sekcji wymagaj :

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

Teraz w konsoli uruchom następujące polecenie, aby zainstalować rozszerzenie

composer update

Gdy kompozytor zakończy instalację, otwórz Yii2 w przeglądarce. Otwórz pasek debugowania Yii i znajdź zainstalowane rozszerzenia. Na liście znajdziesz yii2-redis.

Oznacza to, że Redis został pomyślnie zainstalowany i jest gotowy do użycia.

Krok 2:Łączenie Redis z Yii2

Następnie połącz aplikację Yii2 z Redisem. Przejdź do konfiguracji folder i otwórz web.php. Dodaj następujące wiersze w komponentach sekcja.

       'redis'         => [

           'class'    => 'yii\redis\Connection',

           'hostname' => 'localhost',

           'port'     => 6379,

           'database' => 0,

       ],

       'session'       => [

           'class' => 'yii\redis\Session',

       ],

       'cache'         => [

           'class' => 'yii\redis\Cache',

        ],

Po zakończeniu zapisz plik. Nadszedł czas, aby użyć rozszerzenia jako obsługi sesji.

Krok 3:Używanie Redis jako obsługi sesji w Yii2

Teraz otwórz folder kontrolerów i dodaj w nim nowy kontroler. Nazwijmy go RedisController.php. Teraz otwórz plik i umieść w nim następujący kod.

<?php

namespace app\controllers;

use Yii;

use yii\filters\AccessControl;

use yii\web\Controller;

use yii\filters\VerbFilter;

class RedisController extends Controller

{

   public function actionIndex()

   {

       Yii::$app->session->setFlash('contactFormSubmitted');

       $a = Yii::$app->session->getFlash('contactFormSubmitted');

       echo $a;

   }

}

Teraz uruchom ten kontroler w przeglądarce, a po utworzeniu sesji zobaczysz poniższy obrazek.

Sprawdźmy teraz, czy ta sesja została dodana do pamięci podręcznej redis . Otwórz terminal SSH i wpisz następujące polecenie, aby otworzyć redis cli.

redis-cli

W wierszu poleceń wpisz następujące polecenie, aby sprawdzić, czy został dodany nowy klucz:

keys *

Jeśli znajdziesz pomieszany klucz alfanumeryczny, ten klucz jest kluczem sesji. Oznacza to, że sesja Redis działa poprawnie.

Pozostawmy to okno konsoli otwarte, aby później sprawdzić klucz pamięci podręcznej.

Krok 4:Używanie Redis jako obsługi pamięci podręcznej w Yii2

Teraz otwórz kontroler, który został utworzony wcześniej i dodaj do niego tę nową funkcję.

   public function actionCaches()

   {

       $cache = Yii::$app->cache;

       $key   = 'new';

       $data  = $cache->get($key);

       if ($data === false) {

           $key  = 'new';

           $data = 'A newly cache added';

           $cache->set($key, $data);

       }

       echo $data;

   }

Uruchommy tę akcję w przeglądarce. Otrzymasz „Nowo dodano pamięć podręczną” jako wyjście. Sprawdźmy, czy jest zapisany w Redis, czy nie. Przełącz się na konsolę, która była otwarta i wpisz następujące polecenie:

keys *

Znajdziesz nowe klucz pamięci podręcznej wraz z kluczem sesji, który został wygenerowany wcześniej.

Podsumowanie:

Jak widać, korzystanie z Redisa z Yii2 jest łatwe. po prostu instalujesz rozszerzenie i łączysz z nim Yii2. Następnie możesz użyć rozszerzenia jako procedury obsługi sesji i pamięci podręcznej dla swojej aplikacji. Oto pełna lista tematów poruszanych w tej serii na Yii2. Jeśli chcesz zadać pytanie dotyczące tego artykułu, zostaw komentarz.


No
  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Pobieranie porównawcze z redis vs pamięć w pytonie (przy użyciu timeit)

  2. Problem z wydajnością harmonogramu współbieżności golang + redis

  3. Jaki jest sens wielu baz danych Redis?

  4. jaka jest średnia różnica między klejnotami Nest i redis-namespace, gdy używamy redis z rails/ruby?

  5. Jaka jest korzyść z klastrowania Redis na różnych hostach?