日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

黑马lavarel教程---9、缓存操作

發(fā)布時(shí)間:2025/7/14 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 黑马lavarel教程---9、缓存操作 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

黑馬lavarel教程---9、緩存操作

一、總結(jié)

一句話總結(jié):

legend2項(xiàng)目中自己寫的哪些文件操作都可以通過這里的緩存實(shí)現(xiàn),簡(jiǎn)單方便

?

1、lavarel中如何使用后端主流的緩存如 Memcached 和 Redis 等?

在配置文件 config/cache.php中指定緩存驅(qū)動(dòng)即可

?

2、系統(tǒng)默認(rèn)是使用文件緩存,其緩存文件存儲(chǔ)的位置位于哪里?

storage/framework/cache/data

?

3、如何用緩存做計(jì)數(shù)器?

increment 和 decrement 方法
increment 和 decrement 方法可用于調(diào)整緩存中的整型數(shù)值。這兩個(gè)方法都可以接收第二個(gè)參數(shù)來(lái)指明緩存項(xiàng)數(shù)值增加和減少的數(shù)目:一般會(huì)用作計(jì)數(shù)器。 Cache::increment('key'); Cache::increment('key', $amount); Cache::decrement('key'); Cache::decrement('key', $amount);

?

?

4、緩存經(jīng)常使用的方法有哪些?

add/put、get、has、forget、flush、remember

?

?

?

二、緩存操作

Laravel 為不同的緩存系統(tǒng)提供了統(tǒng)一的 API。緩存配置位于 config/cache.php。在該文件中你可以指定在應(yīng)用中默認(rèn)使用哪個(gè)緩存驅(qū)動(dòng)。Laravel 目前支持主流的緩存后端如 Memcached 和 Redis 等。

主要方法:

Cache::put()?

Cache::get()?

Cache::add()

Cache::pull()

Cache::forever()

Cache::forget()

Cache::has()

系統(tǒng)默認(rèn)是使用文件緩存,其緩存文件存儲(chǔ)的位置位于(storage/framework/cache/data):

?

?

?

?

?

1、設(shè)置緩存

語(yǔ)法:Cache::put('key', 'value', $minutes);

注意:如果該鍵已經(jīng)存在,則直接覆蓋原來(lái)的值,有效期必須設(shè)置,單位是分鐘

?

?

語(yǔ)法:Cache::add('key', 'value', $minutes);

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

?

永久存儲(chǔ)數(shù)據(jù)

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

Cache::forever('key', 'value');????????????????? 永久存儲(chǔ)并不是真的永久,只不過其截至的時(shí)間是比較大的值(到2286年)

2、獲取緩存數(shù)據(jù)

Cache 門面的 get 方法用于從緩存中獲取緩存項(xiàng),如果緩存項(xiàng)不存在,返回 null。如果需要的話你可以傳遞第二個(gè)參數(shù)到 get 方法指定緩存項(xiàng)不存在時(shí)返回的自定義默認(rèn)值:

$value = Cache::get('key');??????????????????????? 獲取指定的key

$value = Cache::get('key', 'default');???? 獲取指定的key值,如果不存在,則使用默認(rèn)值

可以傳遞一個(gè)匿名函數(shù)作為默認(rèn)值,如果緩存項(xiàng)不存在的話閉包的結(jié)果將會(huì)被返回。傳遞匿名函數(shù)允許你可以從數(shù)據(jù)庫(kù)或其它外部服務(wù)獲取默認(rèn)值:

$value = Cache::get('key', function() {

??? return DB::table(...)->get();

});

檢查緩存項(xiàng)是否存在

has 方法用于判斷緩存項(xiàng)是否存在:

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

??? //

}

3、刪除緩存數(shù)據(jù)

語(yǔ)法:

$value = Cache::pull('key'); 從緩存中獲取緩存項(xiàng)然后刪除,如果緩存項(xiàng)不存在的話返回null,一般設(shè)置一次性的存儲(chǔ)的數(shù)據(jù)

Cache::forget('key'); 使用forget 方法從緩存中移除緩存項(xiàng)數(shù)據(jù)

Cache::flush();使用 flush 方法清除所有緩存:并且刪除對(duì)應(yīng)的目錄

?

4、緩存數(shù)值增加/減少

increment 和 decrement 方法可用于調(diào)整緩存中的整型數(shù)值。這兩個(gè)方法都可以接收第二個(gè)參數(shù)來(lái)指明緩存項(xiàng)數(shù)值增加和減少的數(shù)目:一般會(huì)用作計(jì)數(shù)器

?

Cache::increment('key');

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

Cache::decrement('key');

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

5、獲取并存儲(chǔ)

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

?

$value = Cache::remember('users', $minutes, function() {

??? return DB::table('users')->get();

});

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

?

如果獲取users值是不存在,則可以通過后續(xù)的回調(diào)代碼去執(zhí)行對(duì)應(yīng)的操作獲取其值,并返回,同時(shí)會(huì)設(shè)置一個(gè)指定有效期的緩存,方便下次直接使用。比較典型的操作就是在獲取微信的accesstoken的時(shí)候可以使用。原因是accesstoken本身一天只有2000次的配額,而其有7200s的有效期,在有效期內(nèi)可以不用去刷新請(qǐng)求。

?

還可以聯(lián)合 remember 和 forever 方法:

$value = Cache::rememberForever('users', function() {

??? return DB::table('users')->get();

});

?

①創(chuàng)建需要的路由

?

?

?

?

②創(chuàng)建test19方法實(shí)現(xiàn)相關(guān)代碼操作

如果需要使用cache提供的方法,則需要先引入

?

?

?

?

?

?

?

?

?

?

經(jīng)常使用的:add/put、get、has、forget、flush、remember

?

?

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/Renyi-Fan/p/11585993.html

總結(jié)

以上是生活随笔為你收集整理的黑马lavarel教程---9、缓存操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。