天天看點

thinkphp5 緩存用法

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');

删除緩存

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