第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

緩存的使用

1.前言

緩存的主要目的是保存上一次訪問過且沒有過期的數(shù)據(jù),合理地使用緩存可以很好地提升訪問速度,ThinkPHP 框架提供內(nèi)置支持的緩存類型包括 file、memcachewincache、sqlite、redis,本小節(jié)介紹這幾種緩存是如何配置的,配置好緩存之后就可以使用緩存來存儲數(shù)據(jù),在緩存的數(shù)據(jù)沒有過期之前,再次請求該數(shù)據(jù)的時候可以直接從緩存中取出來。

2.緩存配置文件

打開 config\cache.php,設置如下內(nèi)容:

<?php

// +----------------------------------------------------------------------
// | 緩存設置
// +----------------------------------------------------------------------

return [
    // 默認緩存驅動
    'default' => env('cache.driver', 'file'),

    // 緩存連接方式配置
    'stores'  => [
        'file' => [
            // 驅動方式
            'type'       => 'File',
            // 緩存保存目錄
            'path'       => '../runtime/study/',
            // 緩存前綴
            'prefix'     => '',
            // 緩存有效期 0表示永久緩存
            'expire'     => 0,
            // 緩存標簽前綴
            'tag_prefix' => 'tag:',
            // 序列化機制 例如 ['serialize', 'unserialize']
            'serialize'  => [],
        ],
        // redis緩存
        'redis'   =>  [
            // 驅動方式
            'type'   => 'redis',
            // 服務器地址
            'host'       => env('REDIS.HOST', '127.0.0.1'),
        ],
    ],
];

如下圖所示:
圖片描述

Tips: 其中默認緩存驅動中的 env('cache.driver', 'file') 表示從 .env 文件中出 [CACHE] 模塊下的 DRIVER 變量的值,默認是 fileredis 配置中的 env('REDIS.HOST', '127.0.0.1') 也是同理。

3.配置 .env 文件

打開 .env 文件,加入如下類容:

[CACHE]
DRIVER = file

[REDIS]
HOST = 127.0.0.1

如下圖所示:
圖片描述

Tips: redis 的配置需要根據(jù)實際的 ip 去填寫,為了學習方便,這里可以將 DRIVER 設置為 file,表示默認使用文件緩存,若實際業(yè)務中,可以根據(jù)配置好的 redis,將 DRIVER 設置為 redis 也可以。

4.設置和取出緩存

app\controller\Index.php 中的 index() 方法加入如下代碼:

        Cache::set('access_token',"zmxlspwoigydhxnmslqo",3600);
        halt(Cache::get('access_token'));

如下圖所示:
圖片描述

Tips: 其中 Cache::set('access_token',"zmxlspwoigydhxnmslqo",3600) 表示給 access_token 這個緩存名設置一個值 zmxlspwoigydhxnmslqo ,過期時間為 3600s 之后,在 3600s 之內(nèi)該值就會一直保存在緩存中,注意第二參數(shù)也能保存一個數(shù)組。

請求打印結果如下圖:
圖片描述

5.緩存標簽

可以將同一類緩存加上同一個標簽,這樣在需要同時清理的時候就會很方便:

        Cache::tag('study')->set('name1','qsx1',10);
        Cache::tag('study')->set('name2','qsx2',10);
        Cache::tag('study')->set('name3','qsx3',10);
        Cache::tag('study')->set('name4','qsx4',10);
        Cache::tag('study_01')->set('name5','qsx5',10);
        $name1 = Cache::get('name1');
        $name2 = Cache::get('name2');
        $name3 = Cache::get('name3');
        $name4 = Cache::get('name4');
        $name5 = Cache::get('name5');
        print_r([$name1,$name2,$name3,$name4,$name5]);
        //清除 tag = study 的所有緩存
        Cache::tag('study')->clear();

        $name1 = Cache::get('name1');
        $name2 = Cache::get('name2');
        $name3 = Cache::get('name3');
        $name4 = Cache::get('name4');
        $name5 = Cache::get('name5');
        print_r([$name1,$name2,$name3,$name4,$name5]);die;

如下圖所示:
圖片描述

Tips: 其中 Cache::tag('study')->clear(); 表示將打過 tagstudy 的緩存清除掉,可以使用 Cache::tag('study')->append('namex') 這種方式給沒有打標簽的緩存打上標簽。

請求打印結果如下圖:
圖片描述

6.小結

本小節(jié)主要介紹了如何配置緩存,若要更換默認緩存方式,可以在 .env 文件中將 [CACHE] 變量模塊下的 DRIVER 設置為對應的緩存方式,如 redisfile,緩存的主要目的是保存上一次訪問過且沒有過期的數(shù)據(jù),合理地使用緩存可以很好地提升訪問速度,有些場景下某些值不能頻繁獲取,需要將該值在有效期時間內(nèi)緩存起來,例如使用微信公眾平臺等接口時獲取 access_token,有效期 7200s,在有效期內(nèi)限制了獲取 access_token 的次數(shù),此時使用緩存將會變得很方便。

Tips: 代碼倉庫:https://gitee.com/love-for-poetry/tp6