【Yii2】使用Cache缓存提高性能

目录

1.配置缓存组件:

2.使用缓存

3.一个方法示例:


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

1.配置缓存组件:


config/main.phpconfig/main-local.php 文件中配置 cache 组件:

php 复制代码
<?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 访问缓存组件。以下是一些常用的缓存操作:

  • 添加缓存:

    php 复制代码
    $data = 'some data';
    Yii::$app->cache->set('key', $data, 3600); // 缓存时间为 3600 秒
  • 获取缓存:

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

    php 复制代码
    Yii::$app->cache->delete('key');
  • 清空缓存:

    php 复制代码
    Yii::$app->cache->flush();

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

3.一个方法示例:


php 复制代码
        // 缓存
        $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, '查询成功!');
相关推荐
zb200641203 分钟前
Laravel5.x核心特性全解析
android·spring boot·php·laravel
zhangfeng113313 分钟前
ThinkPHP5 事件系统的标准最佳实践 事件系统的完整设计逻辑tags.php tags.php(事件地图)
android·开发语言·php
byzh_rc23 分钟前
[DL_Net从入门到入土] 生成对抗网络 GAN
人工智能·生成对抗网络·php
爱莉希雅&&&1 小时前
Redis哨兵模式和主从复制和集群模式搭建与扩容缩容
linux·redis·缓存·集群·哨兵·数据库同步
JohnnyDeng941 小时前
OkHttp 拦截器链与缓存策略:深度解析网络层的核心机制
okhttp·缓存
zb200641201 小时前
Laravel4.x核心特性全解析
spring boot·后端·php·laravel
MRSM_012 小时前
Redis 缓存、队列、排行榜的核心用法
数据库·redis·缓存
Trouvaille ~2 小时前
【Redis篇】Redis 安装与启动:快速搭建一个 Redis 环境
数据库·redis·后端·ubuntu·缓存·环境搭建·安装教程
fengxin_rou2 小时前
【Feed 高并发架构实战】:雪花 ID + 三级缓存 + 计数旁路设计详解
数据库·redis·缓存·架构·事务·并发
Mahir0811 小时前
Spring 循环依赖深度解密:从问题本质到三级缓存源码级解析
java·后端·spring·缓存·面试·循环依赖·三级缓存