yii2項目中如何使用redis

yii2項目中如何使用redis

想要在YII2這個php框架中很好的使用redis鍵值存儲,那么首先就要推薦yii2-redis這個官方的github庫。這個庫能夠很好的幫助我們在Yii2框架中使用redis,它提供緩存,Session以及ActiveRecord模式的支持。

安裝yii2-redis庫

推薦使用composer安裝yii2-redis庫,在你的項目根目錄執行

php?composer.phar?require?--prefer-dist?yiisoft/yii2-redis:"~2.0.0"

或者將

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

加入你的composer.json文件里,之后運行composer update,墻內真的很慢,耐心等待即可。

配置redis

要正確的使用這個擴展,你必須在你的應用程序的配置文件內,配置Connection類,一般來說,配置文件是configweb.php。

在你的組件里加入redis項目,如下:

return?[ ????//.... ????'components'?=>?[ ????????'redis'?=>?[ ????????????'class'?=>?'yiiredisConnection', ????????????'hostname'?=>?'localhost', ????????????'port'?=>?6379, ????????????'database'?=>?0, ????????], ????] ];

如此之后,你便能正常的在yii2框架中使用redis。

示例

簡單使用

我們先來看一段最簡單的使用redis的代碼:

$redis?=?Yii::$app->redis; $key?=?'username'; if?($val?=?$redis->get($key))?{ ????return?['redis'?=>?$val]; }?else?{ ????$redis->set($key,?'Leon'); ????$redis->expire($key,?5); } return?['redis'?=>?'no?data'];

沒有一行注釋,但是就是一目了然是不是。

尋找username這個key,如果找不到,設置鍵值存儲,并且過期時間是5秒鐘。

這就是一個完整的使用redis的例子。

Cache

那么接下來,我們來看看怎么樣將redis用在緩存上。

同樣的,作為緩存使用,我們需要去配置文件里修改緩存項:

'components'?=>?[ ????'cache'?=>?[ ????????//?'class'?=>?'yiicachingFileCache', ????????'class'?=>?'yiiredisCache', ????], ],

如果你沒有配置過redis組件,那么還需要在cache下配置redis:

'components'?=>?[ ????'cache'?=>?[ ????????//?'class'?=>?'yiicachingFileCache', ????????'class'?=>?'yiiredisCache', ????????'redis'?=>?[ ????????????'hostname'?=>?'localhost', ????????????'port'?=>?6379, ????????????'database'?=>?0, ????????], ????], ],

示例代碼如下,通俗易懂也就不過多解釋了:

$cache?=?Yii::$app->cache; $key?=?'username'; if?($cache->exists($key))?{ ????return?['cache'?=>?$cache->get($key)]; }?else?{ ????$cache->set($key,?'Leon',?5); } return?['cache'?=>?'no?cache'];

Session

最后是redis用作session。也是要在組件中配置:

'components'?=>?[ ????'session'?=>?[ ????????'name'?=>?'advanced-frontend', ????????'class'?=>?'yiiredisSession' ????], ],

如果沒有配置過redis,同樣需要配置:

'components'?=>?[ ????'session'?=>?[ ????????'name'?=>?'advanced-frontend', ????????'class'?=>?'yiiredisSession', ????????'redis'?=>?[ ????????????'hostname'?=>?'localhost', ????????????'port'?=>?6379, ????????????'database'?=>?0, ????????], ????], ],

示例代碼如下:

$session?=?Yii::$app->session; $key?=?'username'; if?($session->has($key))?{ ????return?['session'?=>?$session->get($key)]; }?else?{ ????$session->set($key,?'Leon'); } return?['session'?=>?'no?session'];

在簡單的示范下,如何將redis這個高效的工具用好,則是考驗大家的能力了。加油吧!

PHP中文網,有大量免費的Yii入門教程,歡迎大家學習!

以上就是yii2項目中如何使用

? 版權聲明
THE END
喜歡就支持一下吧
點贊9 分享