深入解析PHP的Yii框架中的緩存功能,yii框架_PHP教程
Jul 12, 2016 am 08:55 AM深入解析PHP的Yii框架中的緩存功能,yii框架
數(shù)據(jù)緩存是指將一些 PHP 變量存儲(chǔ)到緩存中,使用時(shí)再?gòu)木彺嬷腥』?。它也是更高?jí)緩存特性的基礎(chǔ),例如查詢緩存和內(nèi)容緩存。
如下代碼是一個(gè)典型的數(shù)據(jù)緩存使用模式。其中 $cache 指向緩存組件:
// 嘗試從緩存中取回 $data $data = $cache->get($key); if ($data === false) { // $data 在緩存中沒(méi)有找到,則重新計(jì)算它的值 // 將 $data 存放到緩存供下次使用 $cache->set($key, $data); } // 這兒 $data 可以使用了。
緩存組件
數(shù)據(jù)緩存需要緩存組件提供支持,它代表各種緩存存儲(chǔ)器,例如內(nèi)存,文件,數(shù)據(jù)庫(kù)。
緩存組件通常注冊(cè)為應(yīng)用程序組件,這樣它們就可以在全局進(jìn)行配置與訪問(wèn)。如下代碼演示了如何配置應(yīng)用程序組件 cache 使用兩個(gè) memcached 服務(wù)器:
'components' => [ 'cache' => [ 'class' => 'yii\caching\MemCache', 'servers' => [ [ 'host' => 'server1', 'port' => 11211, 'weight' => 100, ], [ 'host' => 'server2', 'port' => 11211, 'weight' => 50, ], ], ], ],
然后就可以通過(guò) Yii::$app->cache 訪問(wèn)上面的緩存組件了。
由于所有緩存組件都支持同樣的一系列 API ,并不需要修改使用緩存的業(yè)務(wù)代碼就能直接替換為其他底層緩存組件,只需在應(yīng)用配置中重新配置一下就可以。例如,你可以將上述配置修改為使用 yii\caching\ApcCache:
'components' => [ 'cache' => [ 'class' => 'yii\caching\ApcCache', ], ],
Tip: 你可以注冊(cè)多個(gè)緩存組件,很多依賴緩存的類默認(rèn)調(diào)用名為 cache 的組件(例如 yii\web\UrlManager)。
支持的緩存存儲(chǔ)器
Yii 支持一系列緩存存儲(chǔ)器,概況如下:
- yii\caching\ApcCache:使用 PHP APC 擴(kuò)展。這個(gè)選項(xiàng)可以認(rèn)為是集中式應(yīng)用程序環(huán)境中(例如:?jiǎn)我环?wù)器,沒(méi)有獨(dú)立的負(fù)載均衡器等)最快的緩存方案。
- yii\caching\DbCache:使用一個(gè)數(shù)據(jù)庫(kù)的表存儲(chǔ)緩存數(shù)據(jù)。要使用這個(gè)緩存,你必須創(chuàng)建一個(gè)與 yii\caching\DbCache::cacheTable 對(duì)應(yīng)的表。
- yii\caching\DummyCache: 僅作為一個(gè)緩存占位符,不實(shí)現(xiàn)任何真正的緩存功能。這個(gè)組件的目的是為了簡(jiǎn)化那些需要查詢緩存有效性的代碼。例如,在開發(fā)中如果服務(wù)器沒(méi)有實(shí)際的緩存支持,用它配置一個(gè)緩存組件。一個(gè)真正的緩存服務(wù)啟用后,可以再切換為使用相應(yīng)的緩存組件。兩種條件下你都可以使用同樣的代碼 Yii::$app->cache->get($key) 嘗試從緩存中取回?cái)?shù)據(jù)而不用擔(dān)心 Yii::$app->cache 可能是 null。
- yii\caching\FileCache:使用標(biāo)準(zhǔn)文件存儲(chǔ)緩存數(shù)據(jù)。這個(gè)特別適用于緩存大塊數(shù)據(jù),例如一個(gè)整頁(yè)的內(nèi)容。
- yii\caching\MemCache:使用 PHP memcache 和 memcached 擴(kuò)展。這個(gè)選項(xiàng)被看作分布式應(yīng)用環(huán)境中(例如:多臺(tái)服務(wù)器,有負(fù)載均衡等)最快的緩存方案。
- yii\redis\Cache:實(shí)現(xiàn)了一個(gè)基于 Redis 鍵值對(duì)存儲(chǔ)器的緩存組件(需要 redis 2.6.12 及以上版本的支持 )。
- yii\caching\WinCache:使用 PHP WinCache(另可參考)擴(kuò)展.
- yii\caching\XCache:使用 PHP XCache擴(kuò)展。
- yii\caching\ZendDataCache:使用 Zend Data Cache 作為底層緩存媒介。
- Tip: 你可以在同一個(gè)應(yīng)用程序中使用不同的緩存存儲(chǔ)器。一個(gè)常見(jiàn)的策略是使用基于內(nèi)存的緩存存儲(chǔ)器存儲(chǔ)小而常用的數(shù)據(jù)(例如:統(tǒng)計(jì)數(shù)據(jù)),使用基于文件或數(shù)據(jù)庫(kù)的緩存存儲(chǔ)器存儲(chǔ)大而不太常用的數(shù)據(jù)(例如:網(wǎng)頁(yè)內(nèi)容)。
緩存 API
所有緩存組件都有同樣的基類 yii\caching\Cache ,因此都支持如下 API:
- yii\caching\Cache::get():通過(guò)一個(gè)指定的鍵(key)從緩存中取回一項(xiàng)數(shù)據(jù)。如果該項(xiàng)數(shù)據(jù)不存在于緩存中或者已經(jīng)過(guò)期/失效,則返回值 false。
- yii\caching\Cache::set():將一項(xiàng)數(shù)據(jù)指定一個(gè)鍵,存放到緩存中。
- yii\caching\Cache::add():如果緩存中未找到該鍵,則將指定數(shù)據(jù)存放到緩存中。
- yii\caching\Cache::mget():通過(guò)指定的多個(gè)鍵從緩存中取回多項(xiàng)數(shù)據(jù)。
- yii\caching\Cache::mset():將多項(xiàng)數(shù)據(jù)存儲(chǔ)到緩存中,每項(xiàng)數(shù)據(jù)對(duì)應(yīng)一個(gè)鍵。
- yii\caching\Cache::madd():將多項(xiàng)數(shù)據(jù)存儲(chǔ)到緩存中,每項(xiàng)數(shù)據(jù)對(duì)應(yīng)一個(gè)鍵。如果某個(gè)鍵已經(jīng)存在于緩存中,則該項(xiàng)數(shù)據(jù)會(huì)被跳過(guò)。
- yii\caching\Cache::exists():返回一個(gè)值,指明某個(gè)鍵是否存在于緩存中。
- yii\caching\Cache::delete():通過(guò)一個(gè)鍵,刪除緩存中對(duì)應(yīng)的值。
- yii\caching\Cache::flush():刪除緩存中的所有數(shù)據(jù)。
- 有些緩存存儲(chǔ)器如 MemCache,APC 支持以批量模式取回緩存值,這樣可以節(jié)省取回緩存數(shù)據(jù)的開支。 yii\caching\Cache::mget() 和 yii\caching\Cache::madd() API提供對(duì)該特性的支持。如果底層緩存存儲(chǔ)器不支持該特性,Yii 也會(huì)模擬實(shí)現(xiàn)。
由于 yii\caching\Cache 實(shí)現(xiàn)了 PHP ArrayAccess 接口,緩存組件也可以像數(shù)組那樣使用,下面是幾個(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)類名 $this->db->dsn, // 數(shù)據(jù)源名稱 $this->db->username, // 數(shù)據(jù)庫(kù)登錄用戶名 $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)用配置中可以編寫如下代碼:
'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ò)期,或者在緩存中找不到 }
緩存依賴
除了超時(shí)設(shè)置,緩存數(shù)據(jù)還可能受到緩存依賴的影響而失效。例如,yii\caching\FileDependency 代表對(duì)一個(gè)文件修改時(shí)間的依賴。這個(gè)依賴條件發(fā)生變化也就意味著相應(yīng)的文件已經(jīng)被修改。因此,緩存中任何過(guò)期的文件內(nèi)容都應(yīng)該被置為失效狀態(tài),對(duì) yii\caching\Cache::get() 的調(diào)用都應(yīng)該返回 false。
緩存依賴用 yii\caching\Dependency 的派生類所表示。當(dāng)調(diào)用 yii\caching\Cache::set() 在緩存中存儲(chǔ)一項(xiàng)數(shù)據(jù)時(shí),可以同時(shí)傳遞一個(gè)關(guān)聯(lián)的緩存依賴對(duì)象。例如:
// 創(chuàng)建一個(gè)對(duì) example.txt 文件修改時(shí)間的緩存依賴 $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)的依賴是否已變化。 // 符合任何一個(gè)條件時(shí)都會(huì)返回 false。 $data = $cache->get($key);
下面是可用的緩存依賴的概況:
- yii\caching\ChainedDependency:如果依賴鏈上任何一個(gè)依賴產(chǎn)生變化,則依賴改變。
- yii\caching\DbDependency:如果指定 SQL 語(yǔ)句的查詢結(jié)果發(fā)生了變化,則依賴改變。
- yii\caching\ExpressionDependency:如果指定的 PHP 表達(dá)式執(zhí)行結(jié)果發(fā)生變化,則依賴改變。
- yii\caching\FileDependency:如果文件的最后修改時(shí)間發(fā)生變化,則依賴改變。
- yii\caching\GroupDependency:將一項(xiàng)緩存數(shù)據(jù)標(biāo)記到一個(gè)組名,你可以通過(guò)調(diào)用 yii\caching\GroupDependency::invalidate() 一次性將相同組名的緩存全部置為失效狀態(tài)。
查詢緩存
查詢緩存是一個(gè)建立在數(shù)據(jù)緩存之上的特殊緩存特性。它用于緩存數(shù)據(jù)庫(kù)查詢的結(jié)果。
查詢緩存需要一個(gè) yii\db\Connection 和一個(gè)有效的 cache 應(yīng)用組件。查詢緩存的基本用法如下,假設(shè) $db 是一個(gè) yii\db\Connection 實(shí)例:
$duration = 60; // 緩存查詢結(jié)果60秒 $dependency = ...; // 可選的緩存依賴 $db->beginCache($duration, $dependency); // ...這兒執(zhí)行數(shù)據(jù)庫(kù)查詢... $db->endCache();
如你所見(jiàn),beginCache() 和 endCache() 中間的任何查詢結(jié)果都會(huì)被緩存起來(lái)。如果緩存中找到了同樣查詢的結(jié)果,則查詢會(huì)被跳過(guò),直接從緩存中提取結(jié)果。
查詢緩存可以用于 ActiveRecord 和 DAO。
Info: 有些 DBMS (例如:MySQL)也支持?jǐn)?shù)據(jù)庫(kù)服務(wù)器端的查詢緩存。你可以選擇使用任一查詢緩存機(jī)制。上文所述的查詢緩存的好處在于你可以指定更靈活的緩存依賴因此可能更加高效。
配置
查詢緩存有兩個(gè)通過(guò) yii\db\Connection 設(shè)置的配置項(xiàng):
yii\db\Connection::queryCacheDuration: 查詢結(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í),查詢緩存才會(huì)有效。
限制條件
當(dāng)查詢結(jié)果中含有資源句柄時(shí),查詢緩存無(wú)法使用。例如,在有些 DBMS 中使用了 BLOB 列的時(shí)候,緩存結(jié)果會(huì)為該數(shù)據(jù)列返回一個(gè)資源句柄。
有些緩存存儲(chǔ)器有大小限制。例如,memcache 限制每條數(shù)據(jù)最大為 1MB。因此,如果查詢結(jié)果的大小超出了該限制,則會(huì)導(dǎo)致緩存失敗。
片段緩存
片段緩存指的是緩存頁(yè)面內(nèi)容中的某個(gè)片段。例如,一個(gè)頁(yè)面顯示了逐年銷售額的摘要表格,可以把表格緩存下來(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ò)期。
依賴
和[數(shù)據(jù)緩存]一樣,片段緩存的內(nèi)容一樣可以設(shè)置緩存依賴。例如一段被緩存的文章,是否重新緩存取決于它是否被修改過(guò)。
通過(guò)設(shè)置 yii\widgets\FragmentCache::dependency 選項(xiàng)來(lái)指定依賴,該選項(xiàng)的值可以是一個(gè) yii\caching\Dependency 類的派生類,也可以是創(chuàng)建緩存對(duì)象的配置數(shù)組。以下代碼指定了一個(gè)片段緩存,它依賴于 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(); }
開關(guān)
有時(shí)你可能只想在特定條件下開啟片段緩存。例如,一個(gè)顯示表單的頁(yè)面,可能只需要在初次請(qǐng)求時(shí)緩存表單(通過(guò) GET 請(qǐng)求)。隨后請(qǐng)求所顯示(通過(guò) POST 請(qǐng)求)的表單不該使用緩存,因?yàn)榇藭r(shí)表單中可能包含用戶輸入內(nèi)容。鑒于此種情況,可以使用 yii\widgets\FragmentCache::enabled 選項(xiàng)來(lá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í)間和依賴,否則外層的片段很有可能返回的是不符合你預(yù)期的失效數(shù)據(jù)。
譯注:外層的失效時(shí)間應(yīng)該短于內(nè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)前用戶名的頁(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框架中自帶的前端資源包的使用
- 簡(jiǎn)介PHP的Yii框架中緩存的一些高級(jí)用法
- PHP的Yii框架中View視圖的使用進(jìn)階
- PHP的Yii框架中創(chuàng)建視圖和渲染視圖的方法詳解
- PHP的Yii框架中Model模型的學(xué)習(xí)教程
- 詳解PHP的Yii框架中的Controller控制器
- PHP的Yii框架中移除組件所綁定的行為的方法
- PHP的Yii框架中行為的定義與綁定方法講解
- 深入講解PHP的Yii框架中的屬性(Property)
- 詳解PHP的Yii框架中擴(kuò)展的安裝與使用

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

In welchem ??Ordner speichert der Browser das Video? Wenn wir den Internetbrowser t?glich nutzen, schauen wir uns h?ufig verschiedene Online-Videos an, z. B. Musikvideos auf YouTube oder Filme auf Netflix. Diese Videos werden w?hrend des Ladevorgangs vom Browser zwischengespeichert, sodass sie bei sp?terer erneuter Wiedergabe schnell geladen werden k?nnen. Die Frage ist also: In welchem ??Ordner werden diese zwischengespeicherten Videos tats?chlich gespeichert? Verschiedene Browser speichern zwischengespeicherte Videoordner an unterschiedlichen Orten. Im Folgenden stellen wir einige g?ngige Browser und deren Funktionen vor

DNS (DomainNameSystem) ist ein System, das im Internet verwendet wird, um Dom?nennamen in entsprechende IP-Adressen umzuwandeln. In Linux-Systemen ist DNS-Caching ein Mechanismus, der die Zuordnungsbeziehung zwischen Dom?nennamen und IP-Adressen lokal speichert, was die Geschwindigkeit der Dom?nennamenaufl?sung erh?hen und die Belastung des DNS-Servers verringern kann. DNS-Caching erm?glicht es dem System, die IP-Adresse schnell abzurufen, wenn es anschlie?end auf denselben Dom?nennamen zugreift, ohne jedes Mal eine Abfrageanforderung an den DNS-Server senden zu müssen, wodurch die Netzwerkleistung und -effizienz verbessert wird. In diesem Artikel erfahren Sie, wie Sie den DNS-Cache unter Linux anzeigen und aktualisieren, sowie zugeh?rige Details und Beispielcode. Bedeutung des DNS-Cachings In Linux-Systemen spielt das DNS-Caching eine Schlüsselrolle. seine Existenz

SpringBoot ist ein beliebtes Java-Framework, das für seine Benutzerfreundlichkeit und schnelle Entwicklung bekannt ist. Mit zunehmender Komplexit?t der Anwendung k?nnen jedoch Leistungsprobleme zu einem Engpass werden. Um Ihnen dabei zu helfen, schnellstm?glich eine SpringBoot-Anwendung zu erstellen, finden Sie in diesem Artikel einige praktische Tipps zur Leistungsoptimierung. Optimieren Sie die Startzeit. Die Startzeit einer Anwendung ist einer der Schlüsselfaktoren für die Benutzererfahrung. SpringBoot bietet verschiedene M?glichkeiten zur Optimierung der Startzeit, z. B. die Verwendung von Caching, die Reduzierung der Protokollausgabe und die Optimierung des Klassenpfad-Scans. Sie k?nnen dies tun, indem Sie spring.main.lazy-initialization in der Datei application.properties festlegen

PHPAPCu (Ersatz für PHP-Cache) ist ein Opcode-Cache- und Daten-Cache-Modul, das PHP-Anwendungen beschleunigt. Das Verst?ndnis seiner erweiterten Funktionen ist entscheidend, um sein volles Potenzial auszusch?pfen. 1. Batch-Betrieb: APCu bietet eine Batch-Betriebsmethode, mit der eine gro?e Anzahl von Schlüssel-Wert-Paaren gleichzeitig verarbeitet werden kann. Dies ist nützlich für umfangreiche Cache-L?schvorg?nge oder Aktualisierungen. //Cache-Schlüssel stapelweise abrufen $values=apcu_fetch(["key1","key2","key3"]); //Cache-Schlüssel stapelweise l?schen apcu_delete(["key1","key2","key3"]) ;2 .Cache-Ablaufzeit festlegen: Mit APCu k?nnen Sie eine Ablaufzeit für Cache-Elemente festlegen, sodass diese nach einer bestimmten Zeit automatisch ablaufen.

Titel: Caching-Mechanismus und Codebeispiele für HTML-Dateien. Einführung: Beim Schreiben von Webseiten sto?en wir h?ufig auf Probleme mit dem Browser-Cache. In diesem Artikel wird der Caching-Mechanismus von HTML-Dateien ausführlich vorgestellt und einige spezifische Codebeispiele bereitgestellt, um den Lesern zu helfen, diesen Mechanismus besser zu verstehen und anzuwenden. 1. Browser-Caching-Prinzip Im Browser prüft der Browser bei jedem Zugriff auf eine Webseite zun?chst, ob sich eine Kopie der Webseite im Cache befindet. Wenn dies der Fall ist, wird der Inhalt der Webseite direkt aus dem Cache abgerufen. Dies ist das Grundprinzip des Browser-Caching. Vorteile des Browser-Caching-Mechanismus

Es besteht eine enge Interaktion zwischen der CPU (Zentraleinheit), dem Arbeitsspeicher (Random Access Memory) und dem Cache, die zusammen eine kritische Komponente eines Computersystems bilden. Die Koordination zwischen ihnen gew?hrleistet den normalen Betrieb und die effiziente Leistung des Computers. Als Gehirn des Computers ist die CPU für die Ausführung verschiedener Anweisungen und die Datenverarbeitung verantwortlich; der Speicher dient zur vorübergehenden Speicherung von Daten und Programmen und sorgt so für schnelle Lese- und Schreibzugriffsgeschwindigkeiten, und der Cache spielt eine Pufferfunktion und beschleunigt den Datenzugriff Geschwindigkeit und Verbesserung Die CPU des Computers ist die Kernkomponente des Computers und für die Ausführung verschiedener Anweisungen, arithmetischer Operationen und logischer Operationen verantwortlich. Es wird als ?Gehirn“ des Computers bezeichnet und spielt eine wichtige Rolle bei der Verarbeitung von Daten und der Ausführung von Aufgaben. Der Speicher ist ein wichtiges Speicherger?t in einem Computer.

Der User Cache (APCu) von PHP ist ein In-Memory-Caching-System zum Speichern und Abrufen von Daten, das die Anwendungsleistung erheblich verbessern kann. Dieser Artikel führt Sie durch die Verwendung von APCu zur Beschleunigung Ihrer Anwendungen. Was ist APCu? APCu ist eine PHP-Erweiterung, die es Ihnen erm?glicht, Daten im Speicher zu speichern. Dies ist viel schneller als das Abrufen von Daten von der Festplatte oder Datenbank. Es wird h?ufig zum Zwischenspeichern von Datenbankabfrageergebnissen, Konfigurationseinstellungen und anderen Daten verwendet, auf die schnell zugegriffen werden muss. APCu installieren Die Installation von APCu auf Ihrem Server erfordert die folgenden Schritte: //Für Debian/Ubuntu-Systeme sudoapt-getinstallphp-apcu//Für Centos/RedHat-Systeme sudoyumi

So exportieren Sie Browser-Cache-Videos Mit der rasanten Entwicklung des Internets sind Videos zu einem unverzichtbaren Bestandteil des t?glichen Lebens der Menschen geworden. Beim Surfen im Internet sto?en wir oft auf Videoinhalte, die wir speichern oder teilen m?chten, aber manchmal k?nnen wir die Quelle der Videodateien nicht finden, weil sie m?glicherweise nur im Cache des Browsers vorhanden sind. Wie exportieren Sie also Videos aus Ihrem Browser-Cache? In diesem Artikel werden Ihnen mehrere g?ngige Methoden vorgestellt. Zun?chst müssen wir ein Konzept kl?ren, n?mlich den Browser-Cache. Der Browser-Cache wird vom Browser verwendet, um die Benutzererfahrung zu verbessern.
