??laravel-cache 緩存系統(tǒng)支持本地files/redis/memcached/database

安裝
-
php 7.x
composer require shopwwi/laravel-cache illuminate/cache ^8.0
-
php 8.x
composer require shopwwi/laravel-cache
-
注意:如果提示你的php版本過高 一般都是由illuminate/cache或者illuminate/filesystem版本過低導致 添加版本安裝即可
composer require shopwwi/laravel-cache illuminate/cache ^10.0 illuminate/filesystem ^10.0
配置文件
//路徑 config/laravelcache.php
支持驅動
- apc
- array
- file 本地緩存
- redis 緩存
- memcached 緩存
- database 數據庫緩存
- dynamodb
- octane
緩存使用
獲取緩存實例
要獲取緩存存儲實例,您可以使用 Cache Facade
,我們將在本文檔中使用它。Cache Facade
提供了對 Laravel
緩存合約底層實現的方便、簡潔的訪問:
<?php
namespace app\controller;
use Shopwwi\LaravelCache\Cache;
class UserController extends Controller
{
/**
* 顯示應用程序的所有用戶的列表。
*
* @return Response
*/
public function index()
{
$value = Cache::get('key');
//
}
}
訪問多個緩存存儲
使用 Cache Facade
,您可以通過 store
方法訪問各種緩存存儲。傳遞給store
方法的鍵應該對應于 cache
配置文件中的 stores
配置數組中列出的存儲之一:
$value = Cache::store('file')->get('foo');
Cache::store('redis')->put('bar', 'baz', 600); // 10 Minutes
從緩存中檢索項目
Cache
門面的 get
方法用于從緩存中檢索項目。如果緩存中不存在該項目,則將返回 null
。如果您愿意,您可以將第二個參數傳遞給 get
方法,指定您希望在項目不存在時返回的默認值:
$value = Cache::get('key');
$value = Cache::get('key', 'default');
您甚至可以將閉包作為默認值傳遞。如果指定的項在緩存中不存在,則返回閉包的結果。傳遞閉包允許您推遲從數據庫或其他外部服務中檢索默認值:
$value = Cache::get('key', function () {
return Db::table(...)->get();
});
檢查項目是否存在
has
方法可用于確定緩存中是否存在項目。如果項目存在但其值為null
,此方法也將返回 false
:
if (Cache::has('key')) {
//
}
遞增 / 遞減值
increment
和 decrement
方法可用于調整緩存中整數項的值。這兩種方法都接受一個可選的第二個參數,指示增加或減少項目值的數量:
Cache::increment('key');
Cache::increment('key', $amount);
Cache::decrement('key');
Cache::decrement('key', $amount);
檢索和存儲
有時您可能希望從緩存中檢索一個項目,但如果請求的項目不存在,也存儲一個默認值。例如,您可能希望從緩存中檢索所有用戶,或者,如果它們不存在,則從數據庫中檢索它們并將它們添加到緩存中。您可以使用 Cache::remember
方法執(zhí)行此操作:
$value = Cache::remember('users', $seconds, function () {
return Db::table('users')->get();
});
如果緩存中不存在該項,則傳遞給 remember
方法的閉包將被執(zhí)行,并將其結果放入緩存中。
您可以使用 rememberForever
方法從緩存中檢索一個項目,或者如果它不存在則永久存儲它:
$value = Cache::rememberForever('users', function () {
return Db::table('users')->get();
});
檢索和刪除
如果您需要從緩存中檢索一個項目然后刪除該項目,您可以使用 pull
方法。 與 get
方法一樣,如果緩存中不存在該項,則將返回 null
:
$value = Cache::pull('key');
在緩存中存儲項目
您可以使用 Cache Facade
上的 put
方法將項目存儲在緩存中:
Cache::put('key', 'value', $seconds = 10);
如果存儲時間沒有傳遞給 put
方法,該項目將被無限期存儲:
Cache::put('key', 'value');
除了將秒數作為整數傳遞之外,您還可以傳遞一個表示緩存項所需過期時間的 DateTime
實例:
Cache::put('key', 'value', now()->addMinutes(10));
如果不存在則存儲
add
方法只會將緩存存儲中不存在的項目添加到緩存中。如果項目實際添加到緩存中,該方法將返回 true
。 否則,該方法將返回 false
。 add
方法是一個原子操作:
Cache::add('key', 'value', $seconds);
永久存儲
forever
方法可用于將項目永久存儲在緩存中。由于這些項目不會過期,因此必須使用 forget
方法手動將它們從緩存中刪除:
Cache::forever('key', 'value');
技巧:如果您使用的是 Memcached
驅動程序,則當緩存達到其大小限制時,可能會刪除「永久」存儲的項目。
從緩存中刪除項目
您可以使用 forget
方法從緩存中刪除項目:
Cache::forget('key');
您還可以通過提供零或負數的過期秒數來刪除項目:
Cache::put('key', 'value', 0);
Cache::put('key', 'value', -5);
您可以使用 flush
方法清除整個緩存:
Cache::flush();
緩存標簽
存儲緩存標簽
緩存標簽允許您在緩存中標記相關項目,然后刷新所有已分配給定標簽的緩存值。您可以通過傳入標記名稱的有序數組來訪問標記緩存。例如,讓我們訪問一個標記的緩存并將一個值「put」緩存中:
Cache::tags(['people', 'artists'])->put('John', $john, $seconds);
Cache::tags(['people', 'authors'])->put('Anne', $anne, $seconds);
訪問緩存標簽
要檢索標記的緩存項,請將相同的有序標簽列表傳遞給 tags
方法,然后使用您要檢索的鍵調用 get
方法:
$john = Cache::tags(['people', 'artists'])->get('John');
$anne = Cache::tags(['people', 'authors'])->get('Anne');
刪除緩存標簽
您可以刷新所有分配了標簽或標簽列表的項目。例如,此語句將刪除所有標記為「people」、「authors」或兩者的緩存。 因此,Anne
和 John
都將從緩存中刪除:
Cache::tags(['people', 'authors'])->flush();
相反,此語句將僅刪除帶有 authors
標記的緩存值,因此將刪除 Anne
,但不會刪除 John
:
Cache::tags('authors')->flush();
更多文檔請查看laravel官方文檔 如果你覺得這個插件幫助到你 希望你前往github點上你的小星星!同樣如果你遇到問題 你可以通過isuse聯系到我 或者8988354@qq.com