redis学习纪录2:YII中使用redis,配置,缓存,命令执行

蛰伏已久 蛰伏已久 2018-05-31

yii2-redis 扩展为 Yii2 框架提供了 redis 键值存储支持。包括缓存(Cache)、会话存储处理(Session),并实现了 ActiveRecord 模式,允许您将活动记录存储在 redis 中。

相关链接:yii2-redis 扩展网址:https://github.com/yiisoft/yii2-redis

安装扩展

在 Yii2 项目根目录,执行以下命令安装:

$ composer require yiisoft/yii2-redis

也可以先在 composer.json 文件中声明如下依赖:

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

再执行下面命令安装:

$ composer update

redis的按照请参考上一节http://shanhuxueyuan.com/news/detail/52.html


配置

在YII中使用redis需要先进行配置

'redis' => [
    'class' => 'yii\redis\Connection',
    'hostname' => 'localhost',
    'port' => 6379,
    'database' => 0,
    'password'  => '123456',
],

如果在缓存中使用redis,还需要设置

'cache' => [
    'class' => 'yii\redis\Cache',
],

缓存

redis存储在内存中,使用 redis 缓存后,比每次都去读取数据库要更快

$cache=\Yii::$app->cache;

if($cache->exists('token')){
    $token=$cache->get("token");
}else{
    $token="123456789";
    $cache->set("token",$token,3600);
}
echo $token;


redis组件

通过redis组件直接操作redis

$redis = \Yii::$app->redis;

$key = 'username';
if ($val = $redis->get($key)) {
    echo($val);
} else {
    $redis->set($key, 'marko');
    $redis->expire($key, 20);
}

最通用的方法是使用 executeCommand 方法:

$result = $redis->executeCommand('hmset', ['test_collection', 'key1', 'val1', 'key2', 'val2']);

支持的每个命令都有一些快捷方式,可以按照如下方式使用:

$result = $redis->hmset('test_collection', 'key1', 'val1', 'key2', 'val2');

有关可用命令及其参数的列表,请参阅 redis 命令:

session

也可以将session信息存入redis,配置文件更改

'session' => [
            'name' => 'advanced-frontend',
            'class' => 'yii\redis\Session',
            'timeout' => 3600,
        ],

通过Yii::$app->session 来设置session

$session=\Yii::$app->session;
$session->set('uid',123);




分享到

点赞(0)