In mijn vorige artikel over Yii2 heb ik besproken hoe je elasticsearch kunt installeren en gebruiken met Yii. In een ander artikel demonstreerde ik de mogelijkheden van het Yii2-framework via een eenvoudige to-do-app. Vandaag zal ik demonstreren hoe Redis te gebruiken als cache- en sessie-handler voor Yii2. In mijn eerdere artikelen over Redis heb ik het gebruik van Redis als cache met aangepaste PHP-sites en Redis voor PHP-sessiebeheer besproken.
Om Redis op Cloudways te installeren, lees mijn artikel waarnaar hierboven is gelinkt.
Stap 1:Redis-extensie van Yii 2 installeren
Open uw composer.json bestand en voeg de volgende regel toe in vereiste sectie :
"yiisoft/yii2-redis":"~2.0.0"
Voer nu in de console de volgende opdracht uit om de extensie te installeren
componist update
Zodra de componist de installatie heeft voltooid, opent u Yii2 in de browser. Open de Yii-foutopsporingsbalk en zoek de geïnstalleerde extensies. Je vindt yii2-redis in de lijst.
Dit betekent dat Redis met succes is geïnstalleerd en klaar is voor gebruik.
Stap 2:Redis verbinden met Yii2
Verbind vervolgens de Yii2-applicatie met Redis. Ga naar config map en open web.php. Voeg de volgende regels toe in de componenten sectie.
'redis' => [ 'class' => 'yii\redis\Connection', 'hostname' => 'localhost', 'port' => [ 'class' => 'yii\redis\Session', ], 'cache' => [ 'class' => 'yii\redis\Cache', ] >Als u klaar bent, slaat u het bestand op. Het is tijd om de extensie als sessie-handler te gebruiken.
Stap 3:Redis gebruiken als sessie-handler met Yii2
Open nu uw controllers-map en voeg er een nieuwe controller aan toe. Laten we het RedisController.php noemen. Open nu het bestand en plaats de volgende code erin.
sessie->setFlash('contactFormSubmitted'); $a =Yii::$app->session->getFlash('contactFormSubmitted'); echo $a; }}Voer nu deze controller in de browser uit en u ziet de onderstaande afbeelding zodra uw sessie is gemaakt.
Laten we nu controleren of deze sessie is toegevoegd aan de redis-cache . Open de SSH-terminal en typ de volgende opdracht om redis cli te openen.
redis-cliTyp op de opdrachtregel de volgende opdracht om te controleren of er een nieuwe sleutel is toegevoegd:
toetsen *Als u een combinatie van een alfanumerieke sleutel vindt, is die sleutel de sessiesleutel. Dit geeft aan dat de Redis-sessie correct werkt.
Laten we dit consolevenster open houden om de cachesleutel later te controleren.
Stap 4:Redis gebruiken als cache-handler met Yii2
Open nu de controller die eerder is gemaakt en voeg deze nieuwe functie toe.
openbare functie actionCaches() { $cache =Yii::$app->cache; $key ='nieuw'; $data =$cache->get($key); if ($data ===false) { $key ='new'; $data ='Een nieuwe cache toegevoegd'; $cache->set($key, $data); } echo $data; }Laten we deze actie in de browser uitvoeren. U krijgt "Een nieuwe cache toegevoegd" als uitgang. Laten we eens kijken of het is opgeslagen in Redis of niet. Schakel over naar de console die open was gelaten en typ het volgende commando:
toetsen *U vindt uw nieuwe cachesleutel samen met de sessiesleutel die eerder is gegenereerd.
Samenvatting:
Zoals je kunt zien, is het gemakkelijk om Redis te gebruiken met Yii2. je installeert gewoon de extensie en verbindt Yii2 ermee. U kunt de extensie vervolgens gebruiken als sessie-handler en cache voor uw app. Hier is de volledige lijst met onderwerpen die in deze serie over Yii2 worden behandeld. Als je een vraag wilt stellen over dit artikel, laat dan een reactie achter.