您的足迹:首页 > php知识 >yii数据缓存中的依赖关系

yii数据缓存中的依赖关系

除了超时设置,缓存数据还可能受到缓存依赖的影响而失效。例如,yii\caching\FileDependency 代表对一个文件修改时间的依赖。这个依赖条件发生变化也就意味着相应的文件已经被修改。因此,缓存中任何过期的文件内容都应该被置为失效状态;
1、文件依赖(FileDependency):一旦文件改变,缓存将失效,返回false
$dependency=new \yii\caching\FileDependency(['filename'=>'hw.txt']);
$cache->add('file_key','hello word!',3000,$dependency);
var_dump($cache->get('file_key'));
2、表达式依赖(ExpressionDependency):一旦表达式改变,缓存将失效,返回false
$dependency=new \yii\caching\ExpressionDependency(['expression'=>'\YII::$app->request->get["name"]']);
$cache->add('expression_key','hello word!',3000,$dependency);
var_dump($cache->get('expression_key'));
3、DB依赖(DbDependency):一旦数据改变,缓存将失效,返回false
$dependency=new \yii\caching\DbDependency(
['sql'=>'select count(*) from user']);
$cache->add('db_key','hello word!',3000,$dependency);
var_dump($cache->get('db_key'));

可用的缓存依赖的概况:

  • yii\caching\ChainedDependency:如果依赖链上任何一个依赖产生变化,则依赖改变。
  • yii\caching\DbDependency:如果指定 SQL 语句的查询结果发生了变化,则依赖改变。
  • yii\caching\ExpressionDependency:如果指定的 PHP 表达式执行结果发生变化,则依赖改变。
  • yii\caching\FileDependency:如果文件的最后修改时间发生变化,则依赖改变。
  • yii\caching\GroupDependency:将一项缓存数据标记到一个组名,你可以通过调用 yii\caching\GroupDependency::invalidate() 一次性将相同组名的缓存全部置为失效状态。


相关推荐

发表评论

路人甲 表情
Ctrl+Enter快速提交

网友评论(0)