国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目次
PHP の Yii フレームワークのキャッシュ関數(shù)の詳細(xì)な分析
興味があるかもしれない記事:
ホームページ バックエンド開(kāi)発 PHPチュートリアル PHP の Yii フレームワークのキャッシュ関數(shù)の詳細(xì)な分析、yii Framework_PHP チュートリアル

PHP の Yii フレームワークのキャッシュ関數(shù)の詳細(xì)な分析、yii Framework_PHP チュートリアル

Jul 12, 2016 am 08:55 AM
yii キャッシュ

PHP の Yii フレームワークのキャッシュ関數(shù)の詳細(xì)な分析

データ キャッシュとは、一部の PHP 変數(shù)をキャッシュに保存し、使用時(shí)にキャッシュから取得することを指します。また、クエリ キャッシュやコンテンツ キャッシュなど、より高度なキャッシュ機(jī)能の基礎(chǔ)でもあります。

次のコードは、典型的なデータ キャッシュの使用パターンです。 $cache はキャッシュ コンポーネントを指します:

リーリー

キャッシュコンポーネント

データ キャッシュには、メモリ、ファイル、データベースなどのさまざまなキャッシュ メモリを表すキャッシュ コンポーネントからのサポートが必要です。

キャッシュ コンポーネントは通常、アプリケーション コンポーネントとして登録され、グローバルに設(shè)定およびアクセスできるようになります。次のコードは、2 つの memcached サーバーを使用するようにアプリケーション コンポーネント キャッシュを構(gòu)成する方法を示しています。 リーリー

その後、Yii::$app->cache を通じて上記のキャッシュコンポーネントにアクセスできます。

すべてのキャッシュ コンポーネントは同じ一連の API をサポートしているため、キャッシュを使用するビジネス コードを変更して他の基礎(chǔ)となるキャッシュ コンポーネントに直接置き換える必要はありません。アプリケーション構(gòu)成で再構(gòu)成するだけで済みます。たとえば、yiicachingApcCache:

を使用するように上記の設(shè)定を変更できます。 リーリー

ヒント: 複數(shù)のキャッシュ コンポーネントを登録できます。キャッシュに依存する多くのクラスは、デフォルトで、cache という名前のコンポーネントを呼び出します (yiiwebUrlManager など)。

サポートされているキャッシュメモリ
Yii は一連のキャッシュ メモリをサポートしており、概要は次のとおりです:

yiicachingApcCache: PHP APC 拡張機(jī)能を使用します。このオプションは、集中型アプリケーション環(huán)境 (単一サーバー、別個(gè)のロード バランサーなしなど) で最も高速なキャッシュ ソリューションと考えることができます。
  • yiicachingDbCache: データベース テーブルを使用して、キャッシュされたデータを保存します。このキャッシュを使用するには、yiicachingDbCache::cacheTable に対応するテーブルを作成する必要があります。
  • yiicachingDummyCache: キャッシュのプレースホルダーとしてのみ機(jī)能し、実際のキャッシュ機(jī)能は実裝しません。このコンポーネントの目的は、キャッシュの有効性をクエリする必要があるコードを簡(jiǎn)素化することです。たとえば、開(kāi)発中にサーバーに実際のキャッシュ サポートがない場(chǎng)合は、それを使用してキャッシュ コンポーネントを構(gòu)成します。実際のキャッシュ サービスが有効になったら、対応するキャッシュ コンポーネントの使用に切り替えることができます。どちらの場(chǎng)合も、同じコード Yii::$app->cache->get($key) を使用して、Yii::$app->cache が null である可能性を気にすることなく、キャッシュからデータを取得しようとすることができます。 。
  • yiicachingFileCache: 標(biāo)準(zhǔn)ファイルを使用してキャッシュ データを保存します。これは、コンテンツのページ全體など、大きなデータの塊をキャッシュする場(chǎng)合に特に役立ちます。
  • yiicachingMemCache: PHP memcache および memcached 拡張機(jī)能を使用します。このオプションは、分散アプリケーション環(huán)境 (複數(shù)のサーバー、負(fù)荷分散など) で最も高速なキャッシュ ソリューションと考えられています。
  • yiiredisCache: Redis キーと値のペアのストレージに基づいてキャッシュ コンポーネントを?qū)g裝します (Redis 2.6.12 以降のサポートが必要です)。
  • yiicachingWinCache: PHP WinCache (こちらも參照) 拡張機(jī)能を使用します。
  • yiicachingXCache: PHP XCache 拡張機(jī)能を使用します。
  • yiicachingZendDataCache: Zend Data Cache を基盤(pán)となるキャッシュ メディアとして使用します。
  • ヒント: 同じアプリケーション內(nèi)で異なるキャッシュ メモリを使用できます。一般的な戦略は、小規(guī)模で頻繁に使用されるデータ (統(tǒng)計(jì)など) にはメモリベースのキャッシュを使用し、より大きくて頻繁に使用されないデータ (Web ページのコンテンツなど) にはファイルまたはデータベースベースのキャッシュを使用することです。
キャッシュAPI

すべてのキャッシュ コンポーネントは同じ基本クラス yiicachingCache を持っているため、すべて次の API をサポートします:

yiicachingCache::get(): 指定されたキーを通じてキャッシュからデータを取得します。データがキャッシュに存在しない場(chǎng)合、または期限切れ/無(wú)効になっている場(chǎng)合は、値 false が返されます。
  • yiicachingCache::set(): データの一部のキーを指定し、キャッシュに保存します。
  • yiicachingCache::add(): キーがキャッシュ內(nèi)に見(jiàn)つからない場(chǎng)合、指定されたデータはキャッシュに保存されます。
  • yiicachingCache::mget(): 指定された複數(shù)のキーを通じてキャッシュから複數(shù)のデータを取得します。
  • yiicachingCache::mset(): 複數(shù)のデータ項(xiàng)目をキャッシュに保存します。各データ項(xiàng)目はキーに対応します。
  • yiicachingCache::madd(): 複數(shù)のデータをキャッシュに保存します。各データはキーに対応します。キーがキャッシュにすでに存在する場(chǎng)合、データはスキップされます。
  • yiicachingCache::exists(): キーがキャッシュに存在するかどうかを示す値を返します。
  • yiicachingCache::delete(): キーを使用してキャッシュ內(nèi)の対応する値を削除します。
  • yiicachingCache::flush(): キャッシュ內(nèi)のすべてのデータを削除します。
  • MemCache や APC などの一部のキャッシュ メモリは、バッチ モードでのキャッシュされた値の取得をサポートしており、キャッシュされたデータを取得するコストを節(jié)約できます。 yiicachingCache::mget() および yiicachingCache::madd() API は、この機(jī)能のサポートを提供します?;A(chǔ)となるキャッシュメモリがこの機(jī)能をサポートしていない場(chǎng)合、Yii はその実裝もエミュレートします。
  • yiicachingCache は PHP ArrayAccess インターフェイスを?qū)g裝しているため、キャッシュ コンポーネントを配列のように使用することもできます。 いくつかの例を次に示します。
    $cache['var1'] = $value1; // 等價(jià)于: $cache->set('var1', $value1);
    $value2 = $cache['var2']; // 等價(jià)于: $value2 = $cache->get('var2');
    

    緩存鍵

    存儲(chǔ)在緩存中的每項(xiàng)數(shù)據(jù)都通過(guò)鍵作唯一識(shí)別。當(dāng)你在緩存中存儲(chǔ)一項(xiàng)數(shù)據(jù)時(shí),必須為它指定一個(gè)鍵,稍后從緩存中取回?cái)?shù)據(jù)時(shí),也需要提供相應(yīng)的鍵。

    你可以使用一個(gè)字符串或者任意值作為一個(gè)緩存鍵。當(dāng)鍵不是一個(gè)字符串時(shí),它將會(huì)自動(dòng)被序列化為一個(gè)字符串。

    定義一個(gè)緩存鍵常見(jiàn)的一個(gè)策略就是在一個(gè)數(shù)組中包含所有的決定性因素。例如,yii\db\Schema 使用如下鍵存儲(chǔ)一個(gè)數(shù)據(jù)表的結(jié)構(gòu)信息。

    [
      __CLASS__,       // 結(jié)構(gòu)類(lèi)名
      $this->db->dsn,     // 數(shù)據(jù)源名稱(chēng)
      $this->db->username,  // 數(shù)據(jù)庫(kù)登錄用戶(hù)名
      $name,         // 表名
    ];
    

    如你所見(jiàn),該鍵包含了可唯一指定一個(gè)數(shù)據(jù)庫(kù)表所需的所有必要信息。

    當(dāng)同一個(gè)緩存存儲(chǔ)器被用于多個(gè)不同的應(yīng)用時(shí),應(yīng)該為每個(gè)應(yīng)用指定一個(gè)唯一的緩存鍵前綴以避免緩存鍵沖突??梢酝ㄟ^(guò)配置 yii\caching\Cache::keyPrefix 屬性實(shí)現(xiàn)。例如,在應(yīng)用配置中可以編寫(xiě)如下代碼:

    'components' => [
      'cache' => [
        'class' => 'yii\caching\ApcCache',
        'keyPrefix' => 'myapp',    // 唯一鍵前綴
      ],
    ],
    

    為了確?;ネㄐ?,此處只能使用字母和數(shù)字。

    緩存過(guò)期

    默認(rèn)情況下,緩存中的數(shù)據(jù)會(huì)永久存留,除非它被某些緩存策略強(qiáng)制移除(例如:緩存空間已滿,最老的數(shù)據(jù)會(huì)被移除)。要改變此特性,你可以在調(diào)用 yii\caching\Cache::set() 存儲(chǔ)一項(xiàng)數(shù)據(jù)時(shí)提供一個(gè)過(guò)期時(shí)間參數(shù)。該參數(shù)代表這項(xiàng)數(shù)據(jù)在緩存中可保持有效多少秒。當(dāng)你調(diào)用 yii\caching\Cache::get() 取回?cái)?shù)據(jù)時(shí),如果它已經(jīng)過(guò)了超時(shí)時(shí)間,該方法將返回 false,表明在緩存中找不到這項(xiàng)數(shù)據(jù)。例如:

    // 將數(shù)據(jù)在緩存中保留 45 秒
    $cache->set($key, $data, 45);
    
    sleep(50);
    
    $data = $cache->get($key);
    if ($data === false) {
      // $data 已過(guò)期,或者在緩存中找不到
    }
    
    

    緩存依賴(lài)

    除了超時(shí)設(shè)置,緩存數(shù)據(jù)還可能受到緩存依賴(lài)的影響而失效。例如,yii\caching\FileDependency 代表對(duì)一個(gè)文件修改時(shí)間的依賴(lài)。這個(gè)依賴(lài)條件發(fā)生變化也就意味著相應(yīng)的文件已經(jīng)被修改。因此,緩存中任何過(guò)期的文件內(nèi)容都應(yīng)該被置為失效狀態(tài),對(duì) yii\caching\Cache::get() 的調(diào)用都應(yīng)該返回 false。

    緩存依賴(lài)用 yii\caching\Dependency 的派生類(lèi)所表示。當(dāng)調(diào)用 yii\caching\Cache::set() 在緩存中存儲(chǔ)一項(xiàng)數(shù)據(jù)時(shí),可以同時(shí)傳遞一個(gè)關(guān)聯(lián)的緩存依賴(lài)對(duì)象。例如:

    // 創(chuàng)建一個(gè)對(duì) example.txt 文件修改時(shí)間的緩存依賴(lài)
    $dependency = new \yii\caching\FileDependency(['fileName' => 'example.txt']);
    
    // 緩存數(shù)據(jù)將在30秒后超時(shí)
    // 如果 example.txt 被修改,它也可能被更早地置為失效狀態(tài)。
    $cache->set($key, $data, 30, $dependency);
    
    // 緩存會(huì)檢查數(shù)據(jù)是否已超時(shí)。
    // 它還會(huì)檢查關(guān)聯(lián)的依賴(lài)是否已變化。
    // 符合任何一個(gè)條件時(shí)都會(huì)返回 false。
    $data = $cache->get($key);
    
    

    下面是可用的緩存依賴(lài)的概況:

    • yii\caching\ChainedDependency:如果依賴(lài)鏈上任何一個(gè)依賴(lài)產(chǎn)生變化,則依賴(lài)改變。
    • yii\caching\DbDependency:如果指定 SQL 語(yǔ)句的查詢(xún)結(jié)果發(fā)生了變化,則依賴(lài)改變。
    • yii\caching\ExpressionDependency:如果指定的 PHP 表達(dá)式執(zhí)行結(jié)果發(fā)生變化,則依賴(lài)改變。
    • yii\caching\FileDependency:如果文件的最后修改時(shí)間發(fā)生變化,則依賴(lài)改變。
    • yii\caching\GroupDependency:將一項(xiàng)緩存數(shù)據(jù)標(biāo)記到一個(gè)組名,你可以通過(guò)調(diào)用 yii\caching\GroupDependency::invalidate() 一次性將相同組名的緩存全部置為失效狀態(tài)。

    查詢(xún)緩存

    查詢(xún)緩存是一個(gè)建立在數(shù)據(jù)緩存之上的特殊緩存特性。它用于緩存數(shù)據(jù)庫(kù)查詢(xún)的結(jié)果。

    查詢(xún)緩存需要一個(gè) yii\db\Connection 和一個(gè)有效的 cache 應(yīng)用組件。查詢(xún)緩存的基本用法如下,假設(shè) $db 是一個(gè) yii\db\Connection 實(shí)例:

    $duration = 60;   // 緩存查詢(xún)結(jié)果60秒
    $dependency = ...; // 可選的緩存依賴(lài)
    
    $db->beginCache($duration, $dependency);
    
    // ...這兒執(zhí)行數(shù)據(jù)庫(kù)查詢(xún)...
    
    $db->endCache();
    
    

    如你所見(jiàn),beginCache() 和 endCache() 中間的任何查詢(xún)結(jié)果都會(huì)被緩存起來(lái)。如果緩存中找到了同樣查詢(xún)的結(jié)果,則查詢(xún)會(huì)被跳過(guò),直接從緩存中提取結(jié)果。

    查詢(xún)緩存可以用于 ActiveRecord 和 DAO。

    Info: 有些 DBMS (例如:MySQL)也支持?jǐn)?shù)據(jù)庫(kù)服務(wù)器端的查詢(xún)緩存。你可以選擇使用任一查詢(xún)緩存機(jī)制。上文所述的查詢(xún)緩存的好處在于你可以指定更靈活的緩存依賴(lài)因此可能更加高效。
    配置

    查詢(xún)緩存有兩個(gè)通過(guò) yii\db\Connection 設(shè)置的配置項(xiàng):

    yii\db\Connection::queryCacheDuration: 查詢(xún)結(jié)果在緩存中的有效期,以秒表示。如果在調(diào)用 yii\db\Connection::beginCache() 時(shí)傳遞了一個(gè)顯式的時(shí)值參數(shù),則配置中的有效期時(shí)值會(huì)被覆蓋。
    yii\db\Connection::queryCache: 緩存應(yīng)用組件的 ID。默認(rèn)為 'cache'。只有在設(shè)置了一個(gè)有效的緩存應(yīng)用組件時(shí),查詢(xún)緩存才會(huì)有效。
    限制條件

    當(dāng)查詢(xún)結(jié)果中含有資源句柄時(shí),查詢(xún)緩存無(wú)法使用。例如,在有些 DBMS 中使用了 BLOB 列的時(shí)候,緩存結(jié)果會(huì)為該數(shù)據(jù)列返回一個(gè)資源句柄。

    有些緩存存儲(chǔ)器有大小限制。例如,memcache 限制每條數(shù)據(jù)最大為 1MB。因此,如果查詢(xún)結(jié)果的大小超出了該限制,則會(huì)導(dǎo)致緩存失敗。

    片段緩存

    片段緩存指的是緩存頁(yè)面內(nèi)容中的某個(gè)片段。例如,一個(gè)頁(yè)面顯示了逐年銷(xiāo)售額的摘要表格,可以把表格緩存下來(lái),以消除每次請(qǐng)求都要重新生成表格的耗時(shí)。片段緩存是基于數(shù)據(jù)緩存實(shí)現(xiàn)的。

    在視圖中使用以下結(jié)構(gòu)啟用片段緩存:

    if ($this->beginCache($id)) {
    
      // ... 在此生成內(nèi)容 ...
    
      $this->endCache();
    }
    
    

    調(diào)用 yii\base\View::beginCache() 和 yii\base\View::endCache() 方法包裹內(nèi)容生成邏輯。如果緩存中存在該內(nèi)容,yii\base\View::beginCache() 方法將渲染內(nèi)容并返回 false,因此將跳過(guò)內(nèi)容生成邏輯。否則,內(nèi)容生成邏輯被執(zhí)行,一直執(zhí)行到 yii\base\View::endCache() 時(shí),生成的內(nèi)容將被捕獲并存儲(chǔ)在緩存中。

    和[數(shù)據(jù)緩存]一樣,每個(gè)片段緩存也需要全局唯一的 $id 標(biāo)記。

    緩存選項(xiàng)

    如果要為片段緩存指定額外配置項(xiàng),請(qǐng)通過(guò)向 yii\base\View::beginCache() 方法第二個(gè)參數(shù)傳遞配置數(shù)組。在框架內(nèi)部,該數(shù)組將被用來(lái)配置一個(gè) yii\widget\FragmentCache 小部件用以實(shí)現(xiàn)片段緩存功能。

    過(guò)期時(shí)間(duration)

    或許片段緩存中最常用的一個(gè)配置選項(xiàng)就是 yii\widgets\FragmentCache::duration 了。它指定了內(nèi)容被緩存的秒數(shù)。以下代碼緩存內(nèi)容最多一小時(shí):

    if ($this->beginCache($id, ['duration' => 3600])) {
    
      // ... 在此生成內(nèi)容 ...
    
      $this->endCache();
    }
    
    

    如果該選項(xiàng)未設(shè)置,則默認(rèn)為 0,永不過(guò)期。

    依賴(lài)

    和[數(shù)據(jù)緩存]一樣,片段緩存的內(nèi)容一樣可以設(shè)置緩存依賴(lài)。例如一段被緩存的文章,是否重新緩存取決于它是否被修改過(guò)。

    通過(guò)設(shè)置 yii\widgets\FragmentCache::dependency 選項(xiàng)來(lái)指定依賴(lài),該選項(xiàng)的值可以是一個(gè) yii\caching\Dependency 類(lèi)的派生類(lèi),也可以是創(chuàng)建緩存對(duì)象的配置數(shù)組。以下代碼指定了一個(gè)片段緩存,它依賴(lài)于 update_at 字段是否被更改過(guò)的。

    $dependency = [
      'class' => 'yii\caching\DbDependency',
      'sql' => 'SELECT MAX(updated_at) FROM post',
    ];
    
    if ($this->beginCache($id, ['dependency' => $dependency])) {
    
      // ... 在此生成內(nèi)容 ...
    
      $this->endCache();
    }
    
    

    變化

    緩存的內(nèi)容可能需要根據(jù)一些參數(shù)的更改而變化。例如一個(gè) Web 應(yīng)用支持多語(yǔ)言,同一段視圖代碼也許需要生成多個(gè)語(yǔ)言的內(nèi)容。因此可以設(shè)置緩存根據(jù)應(yīng)用當(dāng)前語(yǔ)言而變化。

    通過(guò)設(shè)置 yii\widgets\FragmentCache::variations 選項(xiàng)來(lái)指定變化,該選項(xiàng)的值應(yīng)該是一個(gè)標(biāo)量,每個(gè)標(biāo)量代表不同的變化系數(shù)。例如設(shè)置緩存根據(jù)當(dāng)前語(yǔ)言而變化可以用以下代碼:

    if ($this->beginCache($id, ['variations' => [Yii::$app->language]])) {
    
      // ... 在此生成內(nèi)容 ...
    
      $this->endCache();
    }
    
    

    開(kāi)關(guān)

    有時(shí)你可能只想在特定條件下開(kāi)啟片段緩存。例如,一個(gè)顯示表單的頁(yè)面,可能只需要在初次請(qǐng)求時(shí)緩存表單(通過(guò) GET 請(qǐng)求)。隨后請(qǐng)求所顯示(通過(guò) POST 請(qǐng)求)的表單不該使用緩存,因?yàn)榇藭r(shí)表單中可能包含用戶(hù)輸入內(nèi)容。鑒于此種情況,可以使用 yii\widgets\FragmentCache::enabled 選項(xiàng)來(lái)指定緩存開(kāi)關(guān),如下所示:

    if ($this->beginCache($id, ['enabled' => Yii::$app->request->isGet])) {
    
      // ... 在此生成內(nèi)容 ...
    
      $this->endCache();
    }
    
    

    緩存嵌套

    片段緩存可以被嵌套使用。一個(gè)片段緩存可以被另一個(gè)包裹。例如,評(píng)論被緩存在里層,同時(shí)整個(gè)評(píng)論的片段又被緩存在外層的文章中。以下代碼展示了片段緩存的嵌套使用:

    if ($this->beginCache($id1)) {
    
      // ...在此生成內(nèi)容...
    
      if ($this->beginCache($id2, $options2)) {
    
        // ...在此生成內(nèi)容...
    
        $this->endCache();
      }
    
      // ...在此生成內(nèi)容...
    
      $this->endCache();
    }
    
    

    可以為嵌套的緩存設(shè)置不同的配置項(xiàng)。例如,內(nèi)層緩存和外層緩存使用不同的過(guò)期時(shí)間。甚至當(dāng)外層緩存的數(shù)據(jù)過(guò)期失效了,內(nèi)層緩存仍然可能提供有效的片段緩存數(shù)據(jù)。但是,反之則不然。如果外層片段緩存沒(méi)有過(guò)期而被視為有效,此時(shí)即使內(nèi)層片段緩存已經(jīng)失效,它也將繼續(xù)提供同樣的緩存副本。因此,你必須謹(jǐn)慎處理緩存嵌套中的過(guò)期時(shí)間和依賴(lài),否則外層的片段很有可能返回的是不符合你預(yù)期的失效數(shù)據(jù)。

    譯注:外層的失效時(shí)間應(yīng)該短于內(nèi)層,外層的依賴(lài)條件應(yīng)該低于內(nèi)層,以確保最小的片段,返回的是最新的數(shù)據(jù)。
    動(dòng)態(tài)內(nèi)容

    使用片段緩存時(shí),可能會(huì)遇到一大段較為靜態(tài)的內(nèi)容中有少許動(dòng)態(tài)內(nèi)容的情況。例如,一個(gè)顯示著菜單欄和當(dāng)前用戶(hù)名的頁(yè)面頭部。還有一種可能是緩存的內(nèi)容可能包含每次請(qǐng)求都需要執(zhí)行的 PHP 代碼(例如注冊(cè)資源包的代碼)。這兩個(gè)問(wèn)題都可以使用動(dòng)態(tài)內(nèi)容功能解決。

    動(dòng)態(tài)內(nèi)容的意思是這部分輸出的內(nèi)容不該被緩存,即便是它被包裹在片段緩存中。為了使內(nèi)容保持動(dòng)態(tài),每次請(qǐng)求都執(zhí)行 PHP 代碼生成,即使這些代碼已經(jīng)被緩存了。

    可以在片段緩存中調(diào)用 yii\base\View::renderDynamic() 去插入動(dòng)態(tài)內(nèi)容,如下所示:

    if ($this->beginCache($id1)) {
    
      // ...在此生成內(nèi)容...
    
      echo $this->renderDynamic('return Yii::$app->user->identity->name;');
    
      // ...在此生成內(nèi)容...
    
      $this->endCache();
    }
    
    

    yii\base\View::renderDynamic() 方法接受一段 PHP 代碼作為參數(shù)。代碼的返回值被看作是動(dòng)態(tài)內(nèi)容。這段代碼將在每次請(qǐng)求時(shí)都執(zhí)行,無(wú)論其外層的片段緩存是否被存儲(chǔ)。

    興味があるかもしれない記事:

    • PHP の Yii フレームワークに付屬するフロントエンド リソース パッケージの使用方法の詳細(xì)な説明
    • PHP の Yii フレームワークにおけるキャッシュの高度な使用方法の紹介
    • PHP の Yii での View の使用フレームワーク
    • PHP の Yii フレームワークでビューを作成し、ビューをレンダリングする方法の詳細(xì)な説明
    • PHP の Yii フレームワークのモデル モデルに関する學(xué)習(xí)チュートリアル
    • PHP の Yii フレームワークのコントローラー コントローラーの詳細(xì)な説明
    • PHP の Yii フレームワークからのコンポーネントの削除 メソッドバインドされたビヘイビアーの説明
    • PHPのYiiフレームワークにおけるビヘイビアの定義とバインド方法の説明
    • PHPのYiiフレームワークにおけるプロパティ(Property)の詳細(xì)な説明
    • PHPのYiiフレームワークにおける拡張機(jī)能のインストールと使用方法の詳細(xì)な説明

    www.bkjia.com本當(dāng)http://www.bkjia.com/PHPjc/1117069.html技術(shù)記事 PHP の Yii フレームワークのキャッシュ機(jī)能の詳細(xì)な分析 Yii フレームワークのデータ キャッシュとは、一部の PHP 変數(shù)をキャッシュに保存し、使用時(shí)にキャッシュから取得することを指します。より高度なキャッシュ機(jī)能もあります...
このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見(jiàn)つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫(huà)像を無(wú)料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫(xiě)真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫(xiě)真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類(lèi)リムーバー

Video Face Swap

Video Face Swap

完全無(wú)料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版

SublimeText3 中國(guó)語(yǔ)版

中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開(kāi)発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開(kāi)発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

動(dòng)畫(huà)ファイルはブラウザのキャッシュのどこに保存されますか? 動(dòng)畫(huà)ファイルはブラウザのキャッシュのどこに保存されますか? Feb 19, 2024 pm 05:09 PM

ブラウザはビデオをどのフォルダにキャッシュしますか? 私たちは毎日インターネット ブラウザを使用するときに、YouTube でミュージック ビデオを視聴したり、Netflix で映畫(huà)を視聴したりするなど、さまざまなオンライン ビデオを視聴することがよくあります。これらのビデオは読み込みプロセス中にブラウザによってキャッシュされるため、將來(lái)再び再生するときにすぐに読み込むことができます。そこで問(wèn)題は、これらのキャッシュされたビデオが実際にどのフォルダーに保存されるのかということです。ブラウザーが異なれば、キャッシュされたビデオ フォルダーは異なる場(chǎng)所に保存されます。以下に、いくつかの一般的なブラウザとそのブラウザを紹介します。

Linux で DNS キャッシュを表示および更新する方法 Linux で DNS キャッシュを表示および更新する方法 Mar 07, 2024 am 08:43 AM

DNS (DomainNameSystem) は、ドメイン名を?qū)潖辘工?IP アドレスに変換するためにインターネットで使用されるシステムです。 Linux システムでは、DNS キャッシュはドメイン名と IP アドレス間のマッピング関係をローカルに保存するメカニズムです。これにより、ドメイン名解決の速度が向上し、DNS サーバーの負(fù)擔(dān)が軽減されます。 DNS キャッシュを使用すると、システムはその後同じドメイン名にアクセスするときに、毎回 DNS サーバーにクエリ要求を発行する必要がなく、IP アドレスを迅速に取得できるため、ネットワークのパフォーマンスと効率が向上します。この記事では、Linux で DNS キャッシュを表示および更新する方法、関連する詳細(xì)およびサンプル コードについて説明します。 DNS キャッシュの重要性 Linux システムでは、DNS キャッシュが重要な役割を果たします。その存在

Spring Boot パフォーマンス最適化のヒント: 風(fēng)のように速くアプリケーションを作成する Spring Boot パフォーマンス最適化のヒント: 風(fēng)のように速くアプリケーションを作成する Feb 25, 2024 pm 01:01 PM

SpringBoot は、使いやすさと迅速な開(kāi)発で知られる人気のある Java フレームワークです。ただし、アプリケーションの複雑さが増すにつれて、パフォーマンスの問(wèn)題がボトルネックになる可能性があります。 SpringBoot アプリケーションを風(fēng)のように速く作成できるように、この記事では、パフォーマンスを最適化するための実踐的なヒントをいくつか紹介します。起動(dòng)時(shí)間の最適化 アプリケーションの起動(dòng)時(shí)間は、ユーザー エクスペリエンスの重要な要素の 1 つです。 SpringBoot には、キャッシュの使用、ログ出力の削減、クラスパス スキャンの最適化など、起動(dòng)時(shí)間を最適化するいくつかの方法が用意されています。これを行うには、application.properties ファイルで spring.main.lazy-initialization を設(shè)定します。

PHP APCu の高度な使用法: 隠された力を解き放つ PHP APCu の高度な使用法: 隠された力を解き放つ Mar 01, 2024 pm 09:10 PM

PHPAPCu (php キャッシュの代替) は、PHP アプリケーションを高速化するオペコード キャッシュおよびデータ キャッシュ モジュールです。その可能性を最大限に活用するには、その高度な機(jī)能を理解することが重要です。 1. バッチ操作: APCu は、多數(shù)のキーと値のペアを同時(shí)に処理できるバッチ操作メソッドを提供します。これは、大規(guī)模なキャッシュのクリアまたは更新に役立ちます。 //キャッシュキーをバッチで取得 $values=apcu_fetch(["key1","key2","key3"]); //キャッシュキーをバッチでクリア apcu_delete(["key1","key2","key3"]) ;2 .キャッシュの有効期限を設(shè)定する: APCu を使用すると、キャッシュ項(xiàng)目の有効期限を設(shè)定して、指定した時(shí)間が経過(guò)すると自動(dòng)的に期限切れになるようにできます。

HTML ファイルはキャッシュされますか? HTML ファイルはキャッシュされますか? Feb 19, 2024 pm 01:51 PM

タイトル: HTML ファイルのキャッシュ メカニズムとコード例 はじめに: Web ページを作成するときに、ブラウザーのキャッシュの問(wèn)題に遭遇することがよくあります。この記事では、HTML ファイルのキャッシュ メカニズムを詳細(xì)に紹介し、読者がこのメカニズムをよりよく理解して適用できるように、いくつかの具體的なコード例を示します。 1. ブラウザのキャッシュ原理 ブラウザでは、Web ページにアクセスするたびに、まずキャッシュに Web ページのコピーがあるかどうかを確認(rèn)します。存在する場(chǎng)合、Web ページのコンテンツはキャッシュから直接取得されます。これがブラウザー キャッシュの基本原理です。ブラウザキャッシュメカニズムの利點(diǎn)

CPU、メモリ、キャッシュの関係を詳しく解説! CPU、メモリ、キャッシュの関係を詳しく解説! Mar 07, 2024 am 08:30 AM

CPU (中央処理裝置)、メモリ (ランダム アクセス メモリ)、およびキャッシュの間には密接な相互作用があり、これらは共にコンピュータ システムの重要なコンポーネントを形成します。それらの間の調(diào)整により、コンピュータの通常の動(dòng)作と効率的なパフォーマンスが保証されます。 CPU はコンピュータの頭脳として、さまざまな命令やデータ処理の実行を擔(dān)當(dāng)します。メモリはデータやプログラムを一時(shí)的に保存するために使用され、高速な読み取りおよび書(shū)き込みアクセス速度を提供します。キャッシュはバッファリングの役割を果たし、データ アクセスを高速化します。速度と向上 コンピュータの CPU はコンピュータの中核コンポーネントであり、さまざまな命令、算術(shù)演算、論理演算の実行を擔(dān)當(dāng)します。コンピューターの「頭脳」と呼ばれ、データの処理やタスクの実行に重要な役割を果たします。メモリはコンピュータの重要な記憶裝置です。

PHP APCu 入門(mén): アプリケーションを高速化する PHP APCu 入門(mén): アプリケーションを高速化する Mar 02, 2024 am 08:20 AM

PHP のユーザー キャッシュ (APCu) は、データを保存および取得するためのメモリ內(nèi)キャッシュ システムであり、アプリケーションのパフォーマンスを大幅に向上させることができます。この記事では、APCu を使用してアプリケーションを高速化する方法について説明します。 APCuとは何ですか? APCu は、メモリにデータを保存できるようにする php 拡張機(jī)能です。これは、ディスクやデータベースからデータを取得するよりもはるかに高速です。これは通常、データベース クエリの結(jié)果、構(gòu)成設(shè)定、および迅速にアクセスする必要があるその他のデータをキャッシュするために使用されます。 APCu のインストール サーバーに APCu をインストールするには、次の手順が必要です。 //Debian/ubuntu システムの場(chǎng)合 sudoapt-getinstallphp-apcu//Centos/RedHat システムの場(chǎng)合 sudoyumi

動(dòng)畫(huà)ファイルをブラウザのキャッシュからローカルに保存する方法 動(dòng)畫(huà)ファイルをブラウザのキャッシュからローカルに保存する方法 Feb 23, 2024 pm 06:45 PM

ブラウザキャッシュビデオをエクスポートする方法 インターネットの急速な発展に伴い、ビデオは人々の日常生活に欠かせないものになりました。 Web を閲覧しているときに、保存または共有したいビデオ コンテンツに遭遇することがよくありますが、ビデオ ファイルがブラウザのキャッシュにのみ存在するため、ビデオ ファイルのソースが見(jiàn)つからないことがあります。では、ブラウザのキャッシュからビデオをエクスポートするにはどうすればよいでしょうか?この記事では、いくつかの一般的な方法を紹介します。まず、ブラウザキャッシュという概念を明確にする必要があります。ブラウザー キャッシュは、ユーザー エクスペリエンスを向上させるためにブラウザーによって使用されます。

See all articles