Cache trong yii2

0
687

Cache là 1 yếu tố rất nhiều ảnh hưởng đến tốc độ website của bạn .Mặc định yii2 đã tạo sẵn cache file cho chúng ta .Hôm nay mình sẽ trình bày các vấn đề về cache như

  • Cache là gì ? Tại sao dùng cache
  • Các loại cache mà yii2 hỗ trợ
  • Cache APIs
  • Cách cấu hình và sử dụng cache

Cache là gì ? Tại sao phải dùng cache

Cache là tên gọi của bộ nhớ đệm – nơi lưu trữ các dữ liệu nằm chờ các controller hay models xử lý.Và lý do sử dụng cache là để tăng tốc độ xử lý ,giảm truy vấn,tăng speedtest của google . Cấu trúc cache ($key,$data).

Các loại cache mà yii2 hỗ  trợ

Yii2 hỗ trợ các loại cache thông dụng như

  • File cache
  • Memcached
  • Redis cache
  • ApcCache
  • DbCache
  • Wincache
  • X cache
  • Zend Data Cache

Cache APIs

Dưới đây là bảng các hàm apis thông dụng

APisTác dụng
Get()Lấy dữ liệu cache theo khóa
Set()Set dữ liệu vào cache theo khóa
Delete()Xóa dữ liệu theo khóa
Exists()Thoát khỏi cache theo khóa
Flush()Xóa toàn bộ cache

Cách cấu hình và sử dụng cache

Demo này mình xử dụng cache cơ bản là Filecache demo .

Cấu hình trong phần common/config file main.php

'components' => [
       'cache' => [
            'class' => 'yii\caching\FileCache',
        ],
    
    ],

Tiếp theo bạn vào phần frontend/controllers/ArticleController.php để sử dụng cache như nào

<?php
namespace frontend\controllers;
use yii\base\Controller;
use common\models\Article;

class CacherecordController extends Controller {
	public function actionIndex()
	{
		echo \Yii::$app->params['timecache'];
		$cache = \Yii::$app->cache;
		$key= "key";
		$data = $cache->get($key);
		if($data === false)
		{
			
			$data = Article::find()->all();
			$cache->set($key, $data,60);
		}
		foreach ($data as $key => $value) {
			//var_dump( $value);
			echo $value ["article_title"];
			echo "<br \>";
		}
		
	}
}

Bạn có thể xem cách mình viết nhé .Sử dụng cache 1 cách thuần thục sẽ giúp server bạn nâng cao hiệu xuất đáp ứng với người dùng tránh được hiện tượng nghẽn vps