ThinkPHP函數詳解:cache方法


cache方法是3.0版本開始新增的緩存管理方法。
注意:3.1.2版本后因cache方法並入原S方法,所以cache方法不再建議使用,用S方法即可。

cache 用於緩存設置、獲取、刪除操作

用法
cache($name, $value='',$options=null)

參數
name(必須):如果傳入數組 則表示進行緩存初始化,如果是字符串則表示緩存賦值、獲取或者刪除操作。
Value(可選):要設置的緩存值,如果傳入null表示刪除緩存,默認為空字符串。
options(可選):要設置的緩存參數,如果是數字則表示僅設置有效期

返回值
見詳(根據具體的用法返回不同的值)

緩存初始化
cache方法傳入數組即表示進行緩存初始化,例如:
  1. cache(array('type'=>'xcache','prefix'=>'think','expire'=>600));

復制代碼

支持的配置參數根據不同的緩存方式(由type參數設置),通用的緩存參數包括:

參數名
說明

expire
緩存有效期(時間為秒)

length
緩存隊列長度

prefix
緩存標識前綴

type
緩存類型

如果沒有設置type參數,則默認為文件緩存,cache方法目前可以支持的緩存類型包括File、Apachenote、Apc、Eaccelerator、Memcache、Shmop、Sqlite、Db、Redis、Xcache和WinCache,不同緩存類型的緩存參數可以參考這里:動態緩存
緩存初始化操作后返回的是一個緩存實例化對象。
如果你沒有進行緩存初始化的話,cache方法會在你進行緩存操作之前自動初始化(用系統默認的緩存方式和緩存參數),默認緩存配置參數包括:

  1. /* 數據緩存設置 */
  2. 'DATA_CACHE_TIME' => 0, // 數據緩存有效期 0表示永久緩存
  3. 'DATA_CACHE_COMPRESS' => false, // 數據緩存是否壓縮緩存
  4. 'DATA_CACHE_CHECK' => false, // 數據緩存是否校驗緩存
  5. 'DATA_CACHE_PREFIX' => '', // 緩存前綴
  6. 'DATA_CACHE_TYPE' => 'File', // 數據緩存類型
  7. 'DATA_CACHE_PATH' => TEMP_PATH,// 緩存路徑設置 (僅對File方式有效)
  8. 'DATA_CACHE_SUBDIR' => false, // 使用子目錄緩存 (根據緩存標識的哈希創建子目錄)
  9. 'DATA_PATH_LEVEL' => 1, // 子目錄緩存級別

復制代碼

這些具體的緩存參數的用法,我們以后會在快速入門:緩存中詳細描述。

緩存設置
緩存初始化之后,就可以進行緩存操作了,
  1. cache('name','value');

復制代碼

會使用當前配置的緩存方式用name標識來緩存value值。
可以單獨設置該緩存數據的有效期,例如:

  1. cache('name','value',3600);

復制代碼

緩存數據一個小時。
為了保證緩存的安全,建議對返回值做出判斷,如果緩存設置失敗,則返回false,否則返回true。
3.1.2版本開始也可以直接在設置緩存的同時傳入緩存設置參數,例如:

  1. cache('name','value',array('type'=>'xcache','prefix'=>'think','expire'=>600));

復制代碼

獲取緩存
  1. $value = cache('name');

復制代碼

如果緩存標識不存在或者已經過期,則返回false,否則返回緩存值。

刪除緩存
  1. cache('name',NULL);

復制代碼

刪除緩存標識為name的緩存數據。
如果要切換緩存方式,可以再次進行緩存初始化操作。
或者使用下面的方式:

  1. $cache = cache(array('type'=>'xcache','prefix'=>'think','expire'=>600));
  2. $cache->name = 'value'; // 設置緩存
  3. $value = $cache->name; // 獲取緩存
  4. unset($cache->name); // 刪除緩存

復制代碼

如果你設置了緩存前綴的話,對應的緩存操作只是對應該緩存前綴標識的,不會影響其他的緩存。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM