Redis
 sql >> Database >  >> NoSQL >> Redis

Come configurare Yii2 con la configurazione Redis

Nel mio precedente articolo su Yii2, ho discusso di come installare e utilizzare elasticsearch con Yii. In un altro articolo, ho dimostrato le capacità del framework Yii2 attraverso una semplice app da fare. Oggi dimostrerò come utilizzare Redis come cache e gestore di sessione per Yii2. Nei miei precedenti articoli su Redis, ho discusso dell'uso di Redis come cache con siti PHP personalizzati e di Redis per la gestione delle sessioni PHP.

Per installare Redis su Cloudways, consulta il mio articolo collegato sopra.

Passaggio 1:installazione dell'estensione Redis di Yii 2

Apri il tuo composer.json file e aggiungi la seguente riga nella sezione richiesta :

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

Ora nella console, esegui il seguente comando per installare l'estensione

composer update

Una volta che il compositore ha completato l'installazione, apri Yii2 nel browser. Apri la barra di debug Yii e individua le estensioni installate. Troverai yii2-redis nell'elenco.

Ciò significa che Redis è stato installato correttamente ed è pronto per l'uso.

Fase 2:collegare Redis a Yii2

Quindi, collega l'applicazione Yii2 con Redis. Vai a configurazione cartella e apri web.php. Aggiungi le seguenti righe nei componenti sezione.

       'redis'         => [

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

           'hostname' => 'localhost',

           'port'     => 6379,

           'database' => 0,

       ],

       'session'       => [

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

       ],

       'cache'         => [

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

        ],

Al termine, salva il file. È ora di utilizzare l'estensione come gestore della sessione.

Fase 3:utilizzo di Redis come gestore di sessione con Yii2

Ora apri la tua cartella controller e aggiungi un nuovo controller al suo interno. Chiamiamolo RedisController.php. Ora apri il file e inserisci il seguente codice.

<?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;

   }

}

Ora esegui questo controller nel browser e vedrai l'immagine sotto una volta creata la tua sessione.

Ora verifichiamo se questa sessione è stata aggiunta alla cache redis . Apri il terminale SSH e digita il seguente comando per aprire redis cli.

redis-cli

Sulla riga di comando, digita il seguente comando per verificare se è stata aggiunta una nuova chiave:

keys *

Se trovi una chiave alfanumerica combinata, quella chiave è la chiave di sessione . Ciò indica che la sessione Redis funziona correttamente.

Teniamo aperta questa finestra della console per controllare la chiave della cache in un secondo momento.

Fase 4:utilizzo di Redis come gestore della cache con Yii2

Ora apri il controller che è stato creato in precedenza e aggiungi questa nuova funzione al suo interno.

   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;

   }

Eseguiamo questa azione nel browser. Riceverai "Una nuova cache aggiunta" come uscita. Controlliamo se è salvato in Redis o meno. Passa alla console che è stata lasciata aperta e digita il seguente comando:

keys *

Troverai il tuo nuovo chiave cache insieme alla chiave di sessione generata in precedenza.

Riepilogo:

Come puoi vedere, è facile usare Redis con Yii2. devi solo installare l'estensione e connettere Yii2 con essa. Puoi quindi utilizzare l'estensione come gestore di sessione e cache per la tua app. Ecco l'elenco completo degli argomenti trattati in questa serie su Yii2. Se hai bisogno di fare una domanda su questo articolo, lascia un commento.


No