Yii2 使用 Cache 缓存可以提高应用程序的性能,减轻服务器负担。Yii2 提供了多种缓存方法,如 MemCache、APC、Redis 等。这里以 Redis为例,介绍如何在 Yii2 中使用缓存。

1.配置缓存组件:
在 config/main.php 或 config/main-local.php 文件中配置 cache 组件:

<?php
use yii\helpers\ArrayHelper;
$config = [
    'components' => [
        'cache' => [
            'class' => 'yii\redis\Cache',
            'keyPrefix' => 'CSNcache-',
            'redis' => [
                'hostname' => '127.0.0.1',
                'port' => 6379,
                'database' => 0,
            ],
        ],
        'redis' => [
            'class' => 'yii\redis\Connection',
            'hostname' => '127.0.0.1',
            'port' => 6379,
            'database' => 13,
        ],
    ],
];
return $config;

2.使用缓存
在 Yii2 中,可以使用 Yii::$app->cache 访问缓存组件。以下是一些常用的缓存操作:
添加缓存:

$data = 'some data';
Yii::$app->cache->set('key', $data, 3600); // 缓存时间为 3600 秒

获取缓存:

$data = Yii::$app->cache->get('key');
if ($data === false) {
    // 缓存不存在,需要重新生成数据
    $data = 'some data';
    Yii::$app->cache->set('key', $data, 3600);
}

删除缓存:

Yii::$app->cache->delete('key');

注意:在实际使用中,为了避免缓存雪崩等问题,建议在缓存操作时加锁,使用 Yii::$app->cache->mutex 对象提供的方法实现。

3.一个方法示例:

// 缓存
$cache = Yii::$app->cache;
$cacheKey = 'cache_key';
$list = $cache->get($cacheKey);
if($list ){
    return $this->responseJson(0, ['list ' => $list ], '查询成功');
}

// 查询
$data = ...
$cache->set($cacheKey, $data, 60);
return $this->responseJson(0, $data, '查询成功!');
最后修改:2025 年 08 月 25 日 12 : 08 PM
如果觉得我的文章对你有用,请随意赞赏