/ yii2

yii2-cache

使用 cache

$menu = Yii::$app->cache->getOrSet('menu', function () {
    return $this->calculateSomething();
});

配置

Yii 2.0 支持全部范围的缓存选项,从服务器端缓存,如果段缓存,查询缓存到客户端的HTTP缓存。他们对各种缓存驱动程序,包括APC,Memcache的,文件,数据库等都支持。

Yii 支持一系列缓存存储器,概况如下:

  • yii\caching\ApcCache:使用 PHP APC 扩展。 这个选项可以认为是集中式应用程序环境中 (例如:单一服务器,没有独立的负载均衡器等)最快的缓存方案。
  • yii\caching\DbCache:使用一个数据库的表存储缓存数据。要使用这个缓存, 你必须创建一个与 yii\caching\DbCache::$cacheTable 对应的表。
    这个组件的目的是为了简化那些需要查询缓存有效性的代码。例如, 在开发中如果服务器没有实际的缓存支持,用它配置一个缓存组件。 一个真正的缓存服务启用后,可以再切换为使用相应的缓存组件。 两种条件下你都可以使用同样的代码 Yii::$app->cache->get($key) 尝试从缓存中取回数据而不用担心 Yii::$app->cache 可能是 null。
  • yii\caching\FileCache:使用标准文件存储缓存数据。 这个特别适用于缓存大块数据,例如一个整页的内容。
  • yii\caching\MemCache:使用 PHP memcache 和 memcached 扩展。 这个选项被看作分布式应用环境中(例如:多台服务器,有负载均衡等) 最快的缓存方案。
  • yii\redis\Cache:实现了一个基于 Redis 键值对存储器的缓存组件 (需要 redis 2.6.12 及以上版本的支持 )。

单一服务器配置

'components' => [
    'cache' => [
        // 安装 APCu PHP extension
        'class' => 'yii\caching\ApcCache',
        'useApcu' => 'true',
    ],
],