cache方法是3.0版本開(kāi)始新增的緩存管理方法。
注意:3.1.2版本后因cache方法并入原S方法,所以cache方法不再建議使用,用S方法即可。 cache 用于緩存設(shè)置、獲取、刪除操作 |
用法 | cache($name, $value='',$options=null) |
參數(shù) | name(必須):如果傳入數(shù)組 則表示進(jìn)行緩存初始化,如果是字符串則表示緩存賦值、獲取或者刪除操作。 Value(可選):要設(shè)置的緩存值,如果傳入null表示刪除緩存,默認(rèn)為空字符串。 options(可選):要設(shè)置的緩存參數(shù),如果是數(shù)字則表示僅設(shè)置有效期 |
返回值 | 見(jiàn)詳(根據(jù)具體的用法返回不同的值) |
緩存初始化
cache方法傳入數(shù)組即表示進(jìn)行緩存初始化,例如:
cache(array('type'=>'xcache','prefix'=>'think','expire'=>600));
支持的配置參數(shù)根據(jù)不同的緩存方式(由type參數(shù)設(shè)置),通用的緩存參數(shù)包括:
參數(shù)名 | 說(shuō)明 |
expire | 緩存有效期(時(shí)間為秒) |
length | 緩存隊(duì)列長(zhǎng)度 |
prefix | 緩存標(biāo)識(shí)前綴 |
type | 緩存類型 |
如果沒(méi)有設(shè)置type參數(shù),則默認(rèn)為文件緩存,cache方法目前可以支持的緩存類型包括File、Apachenote、Apc、Eaccelerator、Memcache、Shmop、Sqlite、Db、Redis、Xcache和WinCache,不同緩存類型的緩存參數(shù)可以參考這里:動(dòng)態(tài)緩存
緩存初始化操作后返回的是一個(gè)緩存實(shí)例化對(duì)象。
如果你沒(méi)有進(jìn)行緩存初始化的話,cache方法會(huì)在你進(jìn)行緩存操作之前自動(dòng)初始化(用系統(tǒng)默認(rèn)的緩存方式和緩存參數(shù)),默認(rèn)緩存配置參數(shù)包括:
/* 數(shù)據(jù)緩存設(shè)置 */
'DATA_CACHE_TIME' => 0, // 數(shù)據(jù)緩存有效期 0表示永久緩存
'DATA_CACHE_COMPRESS' => false, // 數(shù)據(jù)緩存是否壓縮緩存
'DATA_CACHE_CHECK' => false, // 數(shù)據(jù)緩存是否校驗(yàn)緩存
'DATA_CACHE_PREFIX' => '', // 緩存前綴
'DATA_CACHE_TYPE' => 'File', // 數(shù)據(jù)緩存類型
'DATA_CACHE_PATH' => TEMP_PATH,// 緩存路徑設(shè)置 (僅對(duì)File方式有效)
'DATA_CACHE_SUBDIR' => false, // 使用子目錄緩存 (根據(jù)緩存標(biāo)識(shí)的哈希創(chuàng)建子目錄)
'DATA_PATH_LEVEL' => 1, // 子目錄緩存級(jí)別
這些具體的緩存參數(shù)的用法,我們以后會(huì)在快速入門(mén):緩存中詳細(xì)描述。
緩存設(shè)置
緩存初始化之后,就可以進(jìn)行緩存操作了,
cache('name','value');
會(huì)使用當(dāng)前配置的緩存方式用name標(biāo)識(shí)來(lái)緩存value值。
可以單獨(dú)設(shè)置該緩存數(shù)據(jù)的有效期,例如:
cache('name','value',3600);
緩存數(shù)據(jù)一個(gè)小時(shí)。
為了保證緩存的安全,建議對(duì)返回值做出判斷,如果緩存設(shè)置失敗,則返回false,否則返回true。
3.1.2版本開(kāi)始也可以直接在設(shè)置緩存的同時(shí)傳入緩存設(shè)置參數(shù),例如:
cache('name','value',array('type'=>'xcache','prefix'=>'think','expire'=>600));
獲取緩存
$value = cache('name');
如果緩存標(biāo)識(shí)不存在或者已經(jīng)過(guò)期,則返回false,否則返回緩存值。
刪除緩存
cache('name',NULL);
刪除緩存標(biāo)識(shí)為name的緩存數(shù)據(jù)。
如果要切換緩存方式,可以再次進(jìn)行緩存初始化操作。
或者使用下面的方式:
$cache = cache(array('type'=>'xcache','prefix'=>'think','expire'=>600));
$cache->name = 'value'; // 設(shè)置緩存
$value = $cache->name; // 獲取緩存
unset($cache->name); // 刪除緩存
如果你設(shè)置了緩存前綴的話,對(duì)應(yīng)的緩存操作只是對(duì)應(yīng)該緩存前綴標(biāo)識(shí)的,不會(huì)影響其他的緩存。