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.