redis php框架使用,在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类,一般来说,配置文件是config\web.php。

在你的组件里加入redis项目,如下:

return [

//....

'components' => [

'redis' => [

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

'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' => 'yii\caching\FileCache',

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

],

],

如果你没有配置过redis组件,那么还需要在cache下配置redis:

'components' => [

'cache' => [

// 'class' => 'yii\caching\FileCache',

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

'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' => 'yii\redis\Session'

],

],

如果没有配置过redis,同样需要配置:

'components' => [

'session' => [

'name' => 'advanced-frontend',

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

'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这个高效的工具用好,则是考验大家的能力了。加油吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值