黑馬lavarel教程---9、緩存操作
一、總結
一句話總結:
legend2項目中自己寫的哪些文件操作都可以通過這里的緩存實現,簡單方便
1、lavarel中如何使用后端主流的緩存如 Memcached 和 Redis 等?
在配置文件 config/cache.php中指定緩存驅動即可
2、系統默認是使用文件緩存,其緩存文件存儲的位置位於哪里?
storage/framework/cache/data
3、如何用緩存做計數器?
increment 和 decrement 方法
increment 和 decrement 方法可用於調整緩存中的整型數值。這兩個方法都可以接收第二個參數來指明緩存項數值增加和減少的數目:一般會用作計數器。 Cache::increment('key'); Cache::increment('key', $amount); Cache::decrement('key'); Cache::decrement('key', $amount);
4、緩存經常使用的方法有哪些?
add/put、get、has、forget、flush、remember
5、lavarel緩存使用基本操作?
引入Cache:use Cache;
put存:Cache::put($u_id,$question_list_box,60*24);
get取:$question_list_box=Cache::get($u_id);
6、刪除緩存文件的方法是什么(也就是刪了之后那些文件也會跟着被刪了)?
$value = Cache::pull('key'); 從緩存中獲取緩存項然后刪除,如果緩存項不存在的話返回null,一般設置一次性的存儲的數據
Cache::forget('key'); 使用forget 方法從緩存中移除緩存項數據
Cache::flush();使用 flush 方法清除所有緩存:並且刪除對應的目錄
二、緩存操作
Laravel 為不同的緩存系統提供了統一的 API。緩存配置位於 config/cache.php。在該文件中你可以指定在應用中默認使用哪個緩存驅動。Laravel 目前支持主流的緩存后端如 Memcached 和 Redis 等。
主要方法:
Cache::put()
Cache::get()
Cache::add()
Cache::pull()
Cache::forever()
Cache::forget()
Cache::has()
系統默認是使用文件緩存,其緩存文件存儲的位置位於(storage/framework/cache/data):

1、設置緩存
語法:Cache::put('key', 'value', $minutes);
注意:如果該鍵已經存在,則直接覆蓋原來的值,有效期必須設置,單位是分鍾
語法:Cache::add('key', 'value', $minutes);
add 方法只會在緩存項不存在的情況下添加數據到緩存,如果數據被成功添加到緩存返回 true,否則,返回false:
永久存儲數據
forever 方法用於持久化存儲數據到緩存,這些值必須通過 forget 方法手動從緩存中移除:
Cache::forever('key', 'value'); 永久存儲並不是真的永久,只不過其截至的時間是比較大的值(到2286年)
2、獲取緩存數據
Cache 門面的 get 方法用於從緩存中獲取緩存項,如果緩存項不存在,返回 null。如果需要的話你可以傳遞第二個參數到 get 方法指定緩存項不存在時返回的自定義默認值:
$value = Cache::get('key'); 獲取指定的key值
$value = Cache::get('key', 'default'); 獲取指定的key值,如果不存在,則使用默認值
可以傳遞一個匿名函數作為默認值,如果緩存項不存在的話閉包的結果將會被返回。傳遞匿名函數允許你可以從數據庫或其它外部服務獲取默認值:
$value = Cache::get('key', function() {
return DB::table(...)->get();
});
檢查緩存項是否存在
has 方法用於判斷緩存項是否存在:
if (Cache::has('key')) {
//
}
3、刪除緩存數據
語法:
$value = Cache::pull('key'); 從緩存中獲取緩存項然后刪除,如果緩存項不存在的話返回null,一般設置一次性的存儲的數據
Cache::forget('key'); 使用forget 方法從緩存中移除緩存項數據
Cache::flush();使用 flush 方法清除所有緩存:並且刪除對應的目錄
4、緩存數值增加/減少
increment 和 decrement 方法可用於調整緩存中的整型數值。這兩個方法都可以接收第二個參數來指明緩存項數值增加和減少的數目:一般會用作計數器。
Cache::increment('key');
Cache::increment('key', $amount);
Cache::decrement('key');
Cache::decrement('key', $amount);
5、獲取並存儲
有時候你可能想要獲取緩存項,但如果請求的緩存項不存在時給它存儲一個默認值。例如,你可能想要從緩存中獲取所有用戶,或者如果它們不存在的話,從數據庫獲取它們並將其添加到緩存中,你可以通過使用 Cache::remember 方法實現:
$value = Cache::remember('users', $minutes, function() {
return DB::table('users')->get();
});
如果緩存項不存在,傳遞給 remember 方法的閉包被執行並且將結果存放到緩存中。
如果獲取users值是不存在,則可以通過后續的回調代碼去執行對應的操作獲取其值,並返回,同時會設置一個指定有效期的緩存,方便下次直接使用。比較典型的操作就是在獲取微信的accesstoken的時候可以使用。原因是accesstoken本身一天只有2000次的配額,而其有7200s的有效期,在有效期內可以不用去刷新請求。
還可以聯合 remember 和 forever 方法:
$value = Cache::rememberForever('users', function() {
return DB::table('users')->get();
});
①創建需要的路由

②創建test19方法實現相關代碼操作
如果需要使用cache提供的方法,則需要先引入




經常使用的:add/put、get、has、forget、flush、remember。
