YII2框架学习 高效篇(二) 数据缓存

在实际的网站中,访问量大的话就会出现缓存如何处理的这个问题。我之前发布的redis数据库就是专门用于这个的。真的巧,最常用的两种缓存数据库memcche和redis。

YII偏偏选择了memcche。不过没关系,这样又可以学一种常用的缓存数据库了。

1.增删改查

按惯例,数据库的四大操作

        //获取缓存组件
        $cache = \YII::$app->cache;
        //写数据
        $cache->add('key1','name');
        //修改数据
        $cache->set('key1','name1');
        //删除数据
        $cache->delete('key1');
        //清空数据
        $cache->flush();
        //读数据
        print_r($cache->get('key1'));

值得注意的一点是:如果往一个key写两次数据的话,会取第一次的数据。

2.有效期设置

add()和set()的第三个参数是该数据的有效期。

        //有效期设置
        //$cache->add('key1','name',15);
        //$cache->set('key1','name',15);

3.数据缓存依赖

这部分没彻底搞懂,add()和set()的第四个参数可以设置为文件,表达式或者数据库。当它改变时,数据失效。自己写了一下,发现有点问题,先粘一段代码,以后碰到用到的时候再专研

// 加载组件
$cache = \Yii::$app->cache;

// 文件依赖
$dependency = new \yii\caching\FileDependency(['fileName'=>'robots.txt']);
// 如果 robots.txt 被修改,该缓存也立刻失效
$cache->add('the', 'hello world!', 3000, $dependency);
$result = $cache->get('the');

// 表达式依赖
$dependency = new \yii\caching\ExpressionDependency(
    ['expression' => '\Yii::$app->request->get("name")']
);
// 这里使用的表达式是获取$_GET['name']的值,如果值改变,该缓存失效
$cache->add('two', 'hello world!', 3000, $dependency);
$result = $cache->get('two');

// 数据库依赖
$dependency = new \yii\caching\DbDependency(
    ['sql' => 'SELECT count(*) FROM test.user']
);
// 当数据库字段发生变化时,该缓存失效
$cache->add('three', 'hello world!', 3000, $dependency);
$result = $cache->get('three');

这部分就先到这了,谢谢阅读



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值