PHP?laravel緩存cache機制怎么實現(xiàn)

今天小編給大家分享一下PHP laravel緩存cache機制怎么實現(xiàn)的相關(guān)知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計,集網(wǎng)站策劃、網(wǎng)站設(shè)計、網(wǎng)站制作于一體,網(wǎng)站seo、網(wǎng)站優(yōu)化、網(wǎng)站營銷、軟文推廣等專業(yè)人才根據(jù)搜索規(guī)律編程設(shè)計,讓網(wǎng)站在運行后,在搜索中有好的表現(xiàn),專業(yè)設(shè)計制作為您帶來效益的網(wǎng)站!讓網(wǎng)站建設(shè)為您創(chuàng)造效益。

Laravel中的cache為我們提供了三種緩存機制。

redis,memcache,以及框架的文件緩存。

這里主要看的是cache中的文件緩存。

一、訪問多個緩存存儲

使用 Cache門面,你可以使用 store方法訪問不同的緩存存儲器,傳入 store方法的鍵就是 cache配置文件中 stores配置數(shù)組里列出的相應(yīng)的存儲器:

$value = Cache::store('file')->get('foo');
Cache::store('redis')->put('bar', 'baz', 600);  // 10分鐘

二、從緩存中獲取數(shù)據(jù)

1.獲取數(shù)據(jù)并設(shè)置默認值

(1):正常取值

$value = Cache::get('key');

(2):如果不存在,附默認值

$value = Cache::get('key', 'default');

(3):使用閉包操作,附默認值

$value = Cache::get('key', function() {
    return DB::table(...)->get();
});

2.檢查緩存項是否存在

has 方法用于判斷緩存項是否存在,如果值為 null 或 false 該方法會返回 false:

if (Cache::has('key')) {
    //
}

3.數(shù)值增加/減少

increment 和 decrement 方法可用于調(diào)整緩存中的整型數(shù)值。這兩個方法都可以接收第二個參數(shù)來指明緩存項數(shù)值增加和減少的數(shù)目:

Cache::increment('key');
Cache::increment('key', $amount);
Cache::decrement('key');
Cache::decrement('key', $amount);

4.獲取 & 存儲

有時候你可能想要獲取緩存項,但如果請求的緩存項不存在時給它存儲一個默認值。例如,你可能想要從緩存中獲取所有用戶,或者如果它們不存在的話,從數(shù)據(jù)庫獲取它們并將其添加到緩存中,你可以通過使用 Cache::remember 方法實現(xiàn):

$value = Cache::remember('users', $seconds, function() {
    return DB::table('users')->get();
});

如果緩存項不存在,傳遞給 remember 方法的閉包被執(zhí)行并且將結(jié)果存放到緩存中。

你還可以使用 rememberForever 方法從緩存中獲取數(shù)據(jù)或者將其永久存儲起來:

$value = Cache::rememberForever('users', function() {
    return DB::table('users')->get();
});

5.獲取 & 刪除

如果你需要從緩存中獲取緩存項然后刪除,你可以使用 pull 方法,和 get 方法一樣,如果緩存項不存在的話返回 null:

$value = Cache::pull('key');

三、緩存中存儲數(shù)據(jù)

1.獲取存儲數(shù)據(jù)

你可以使用 Cache 門面上的 put 方法在緩存中存儲數(shù)據(jù)。當你在緩存中存儲數(shù)據(jù)的時候,需要指定數(shù)據(jù)被緩存的時間(秒數(shù)):

Cache::put('key', 'value', $seconds);

如果沒有傳遞緩存時間到 put 方法,則緩存項永久有效:

Cache::put('key', 'value');

除了傳遞緩存項失效時間,你還可以傳遞一個代表緩存項有效時間的 PHP Datetime 實例:

$expiresAt = Carbon::now()->addMinutes(10);
Cache::put('key', 'value', $expiresAt);

2.緩存不存在時存儲數(shù)據(jù)

add 方法只會在緩存項不存在的情況下添加數(shù)據(jù)到緩存,如果數(shù)據(jù)被成功添加到緩存返回 true,否則,返回 false:

Cache::add('key', 'value', $seconds);

3.永久存儲數(shù)據(jù)

forever 方法用于持久化存儲數(shù)據(jù)到緩存,這些值必須通過 forget 方法手動從緩存中移除:

Cache::forever('key', 'value');

四、從緩存中移除數(shù)據(jù)

可以使用 Cache 門面上的 forget 方法從緩存中移除緩存項數(shù)據(jù):

Cache::forget('key');

還可以通過設(shè)置緩存有效期為 0 或負數(shù)來移除緩存項:

Cache::put('key', 'value', 0);
 
Cache::put('key', 'value', -5);

如果要清除所有緩存,可以通過 flush 方法:

Cache::flush();

以上就是“PHP laravel緩存cache機制怎么實現(xiàn)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當前文章:PHP?laravel緩存cache機制怎么實現(xiàn)
標題URL:http://muchs.cn/article40/pihjeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名App設(shè)計、移動網(wǎng)站建設(shè)、全網(wǎng)營銷推廣、網(wǎng)站維護品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設(shè)