Yii2.0 缓存机制 - 文件缓存 - FileCache

FileCache 顾名思义就是文件缓存,把需要缓存的数据用文件的形式保存起来。

至于用法也很简单,更详细的还是移步Yii2缓存的官方文档。

在 Yii2 框架中配置 FileCache :

'components' => [
    'cache' => [
        'class' => 'yii\caching\FileCache',
        # 'cachePath' => '@runtime/cache2',// 可以指定文件夹
    ],
]

所有缓存组件都有同样的基类 yii\caching\Cache ,为了统一接口,Yii2将所有类型的缓存都统一成以下这些方法:

get():通过一个指定的键(key)从缓存中取回一项数据。 如果该项数据不存在于缓存中或者已经过期/失效,则返回值 false。
set():将一个由键指定的数据项存放到缓存中。
add():如果缓存中未找到该键,则将指定数据存放到缓存中。
getOrSet():返回由键指定的缓存项,或者执行回调函数,把函数的返回值用键来关联存储到缓存中, 最后返回这个函数的返回值。
multiGet():由指定的键获取多个缓存数据项。
multiSet():一次存储多个数据项到缓存中,每个数据都由一个键来指明。
multiAdd():一次存储多个数据项到缓存中,每个数据都由一个键来指明。 如果某个键已经存在,则略过该数据项不缓存。
exists():返回一个值,指明某个键是否存在于缓存中。
delete():通过一个键,删除缓存中对应的值。
flush():删除缓存中的所有数据。

 下面给出一些例子:

# 加载缓存组件
$cache = Yii::$app->cache;

# 增加一个缓存
$cache->add('url', 'https://caohongyuan.cn');

# 增加/更改一个缓存
$cache->set('url', 'https://www.caohongyuan.cn');

# 获取缓存内容
$cache->get('url');

# 查看缓存是否存在
$cache->exists('url');
# 同时增加多个缓存
$cache->multiAdd(['name' => 'chy', 'url' => 'https://caohongyuan.cn']);

# 同时增加/更改多个缓存
$cache->multiSet(['name' => 'chy', 'url' => 'https://caohongyuan.cn']);

# 同时获取多个缓存
$cache->multiGet(['name', 'url']);

# 获取或者增加缓存
$cache->getOrSet('url', function ($value) {
    return $value;
});

# 删除一个缓存
$cache->delete('url');

# 清除所有的缓存文件
$cache->flush();

我这就不做打印操作了。

除了上述操作外,其实还有更实用的操作,当然能理解 FileCache 的原理才是最重要的。比如:过期时间?文件位置?下面简单说下:

1、增加缓存的时候增加过期时间,判断过期原理:

2、文件地址,多层文件创建和内容读取:

3、比如在清除缓存文件的时候,只想清除已经过期的文件,而不是清除所有:

4、如果怕重名,其实也可以加前缀:

等等,点击查看完整文章。

 

你可能感兴趣的:(PHP,cache)