W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
CodeIgniter 提供了幾種最常用的快速緩存的封裝,除了基于文件的緩存, 其他的緩存都需要對(duì)服務(wù)器進(jìn)行特殊的配置,如果配置不正確,將會(huì)拋出 一個(gè)致命錯(cuò)誤異常(Fatal Exception)。
以下示例代碼展示控制器中的常見(jiàn)使用模式。
if ( ! $foo = cache('foo'))
{
echo 'Saving to the cache!<br />';
$foo = 'foobarbaz!';
// Save into the cache for 5 minutes
cache()->save('foo', $foo, 300);
}
echo $foo;
你可以通過(guò) Services 類直接獲取緩存引擎的實(shí)例:
$cache = \Config\Services::cache();
$foo = $cache->get('foo');
緩存引擎的所有配置都在 application/Config/Cache.php 文件中。在該文件中,以下項(xiàng)目可用。
$handler
$handler 處理器是啟動(dòng)引擎時(shí)應(yīng)用作主處理程序。可用的名稱有: dummy, file, memcached, redis, wincache。
$backupHandler
在第一選擇 $hanlder 不可用的情況下,這是要加載的下一個(gè)緩存處理程序。這通常是 文件 處理程序,因?yàn)槲募到y(tǒng)始終可用,但可能不適合更復(fù)雜的多服務(wù)器設(shè)置。
$prefix
如果您有多個(gè)應(yīng)用程序使用相同的緩存存儲(chǔ),則可以在此處添加一個(gè)前綴到所有鍵名稱的自定義前綴。
$path
file
處理程序使用它來(lái)顯示應(yīng)該將緩存文件保存到哪里。
$memcached
這是使用 Memcache(d)
處理程序時(shí)將使用的一系列服務(wù)器。
$redis
使用 Redis
處理程序時(shí)要使用的Redis服務(wù)器的設(shè)置。
isSupported
()
返回: | 如果支持,則為T(mén)RUE,否則為FALSE |
---|---|
返回類型: | 布爾值 |
get
($key)
參數(shù): | $key (string) – Cache 緩存項(xiàng)名稱 |
---|---|
返回: | 項(xiàng)目值或FALSE如果沒(méi)有找到 |
返回類型: | mixed |
此方法將嘗試從緩存存儲(chǔ)中獲取項(xiàng)目。如果該項(xiàng)目不存在,該方法將返回FALSE。
Example:
$foo = $cache->get('my_cached_item');
save
($key, $data[, $ttl = 60[, $raw = FALSE]])
參數(shù): | $key (string) – Cache item name |
---|---|
$data (mixed) – the data to save | |
$ttl (int) – Time To Live, in seconds (default 60) | |
$raw (bool) – Whether to store the raw value | |
返回: | TRUE on success, FALSE on failure |
返回類型: | string |
此方法將會(huì)將項(xiàng)目保存到緩存存儲(chǔ)。如果保存失敗,該方法將返回FALSE。
Example:
$cache->save('cache_item_id', 'data_to_cache');
注解
該$raw
參數(shù)僅由 Memcache 使用,以便允許使用increment()
和decrement()
。
delete
($key)
參數(shù): | $key (string) – name of cached item |
---|---|
返回: | TRUE on success, FALSE on failure |
返回類型: | bool |
此方法將從緩存存儲(chǔ)中刪除特定項(xiàng)目。如果項(xiàng)目刪除失敗,該方法將返回FALSE。
Example:
$cache->delete('cache_item_id');
increment
($key[, $offset = 1])
參數(shù): | $key (string) – Cache ID |
---|---|
$offset (int) – Step/value to add | |
返回: | New value on success, FALSE on failure |
返回類型: | mixed |
Performs atomic incrementation of a raw stored value. 執(zhí)行原始存儲(chǔ)值的原子增量
Example:
// 'iterator' has a value of 2
$cache->increment('iterator'); // 'iterator' is now 3
$cache->increment('iterator', 3); // 'iterator' is now 6
decrement
($key[, $offset = 1])
參數(shù): | $key (string) – Cache ID |
---|---|
$offset (int) – Step/value to reduce by | |
返回: | New value on success, FALSE on failure |
返回類型: | mixed |
執(zhí)行原始存儲(chǔ)值的原子遞減。
Example:
// 'iterator' has a value of 6
$cache->decrement('iterator'); // 'iterator' is now 5
$cache->decrement('iterator', 2); // 'iterator' is now 3
clean
()
返回: | TRUE on success, FALSE on failure |
---|---|
返回類型: | bool |
此方法將 ‘clean’ 整個(gè)緩存。如果緩存文件的刪除失敗,該方法將返回FALSE。 Example:
$cache->clean();
cache_info
()
返回: | Information on the entire cache database |
---|---|
返回類型: | mixed |
此方法將返回整個(gè)緩存中的信息。
Example:
var_dump($cache->cache_info());
注解
返回的信息和數(shù)據(jù)的結(jié)構(gòu)取決于正在使用的適配器。
getMetadata
($key)
參數(shù): | $key (string) – Cache item name |
---|---|
返回: | Metadata for the cached item |
返回類型: | mixed |
此方法將返回緩存中特定項(xiàng)目的詳細(xì)信息。
Example:
var_dump($cache->getMetadata('my_cached_item'));
注解
返回的信息和數(shù)據(jù)的結(jié)構(gòu)取決于正在使用的適配器。
和輸出類的緩存不同的是,基于文件的緩存支持只緩存視圖的某一部分。使用這個(gè)緩存時(shí)要注意, 確保對(duì)你的應(yīng)用程序進(jìn)行基準(zhǔn)測(cè)試,因?yàn)楫?dāng)磁盤(pán) I/O 頻繁時(shí)可能對(duì)緩存有負(fù)面影響。
可以在緩存配置文件中指定多個(gè) Memcached 服務(wù)器。
關(guān)于 Memcached 的更多信息,請(qǐng)參閱 http://php.net/memcached。
在 Windows 下,你還可以使用 WinCache 緩存。
關(guān)于 WinCache 的更多信息,請(qǐng)參閱 http://php.net/wincache。
Redis 是一個(gè)在內(nèi)存中以鍵值形式存儲(chǔ)數(shù)據(jù)的緩存,使用 LRU(最近最少使用算法)緩存模式, 要使用它,你需要先安裝 Redis 服務(wù)器和 phpredis 擴(kuò)展。
連接 Redis 服務(wù)器的配置信息必須保存到 application/config/redis.php 文件中,可用參數(shù)有:
$config['host'] = '127.0.0.1';
$config['password'] = NULL;
$config['port'] = 6379;
$config['timeout'] = 0;
有關(guān)Redis的更多信息,請(qǐng)參閱 http://redis.io。
這是一個(gè)永遠(yuǎn)不會(huì)命中的緩存,它不存儲(chǔ)數(shù)據(jù),但是它允許你在當(dāng)使用的緩存在你的環(huán)境下不被支持時(shí), 仍然保留使用緩存的代碼。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: