laravel-cache

webman-tech/laravel-cache
Laravel illuminate/cache for webman
介紹
站在巨人(laravel)的肩膀上使緩存使用更加可靠和便捷
所有方法和配置與 laravel 幾乎一模一樣,因此使用方式完全參考 Laravel文檔 即可
同步支持 RateLimiter
安裝
composer require webman-tech/laravel-cache
使用
所有 API 同 laravel,以下僅對有些特殊的操作做說明
Facade 入口
使用 WebmanTech\LaravelCache\Facades\Cache
代替 Illuminate\Support\Facades\Cache
使用 WebmanTech\LaravelCache\Facades\RateLimiter
代替 Illuminate\Support\Facades\RateLimiter
command 支持
-
php webman cache:forget xxx
: 刪除緩存下的某個鍵 -
php webman cache:clear
: 清空所有緩存 (!!注意:此方法使用 Cache::flush 來清除,影響范圍見下文中的使用注意事項!?。?/p>
extend 支持
在 config/plugin/webman-tech/laravel-cache/cache.php
中配置 extend
<?php
return [
'extend' => function(\Illuminate\Cache\CacheManager $cache) {
$cache->extend('mongo', function () use ($cache) {
return $cache->repository(new MongoStore);
});
}
];
PSR6 和 PSR16 支持
-
PSR16:
Cache::psr16()
-
PSR6:
Cache::psr6()
,需要先安裝依賴symfony/cache
Throttle Middleware 支持
該庫實現(xiàn)了類似 Laravel Route 下的 throttle(Middleware\ThrottleRequests),
適用于 webman 路由,用于快速處理接口限流等
配置
在 config/plugin/webman-tech/laravel-cache/rate_limiter.php
下配置 for
,
配置方式同 Laravel 的 RateLimiter::for
使用
<?php
use Webman\Route;
Route::get('/example', function () {
//
})->middleware([
\WebmanTech\LaravelCache\Middleware\ThrottleRequestsFactory::class,
]);
Route::get('/example2', function () {
//
})->middleware([
new \WebmanTech\LaravelCache\Middleware\ThrottleRequestsFactory([
'limiter_for' => 'upload', // 需要在 rate_limiter.php 中配置 upload 的 for
]),
]);
使用注意事項
<details>
<summary>關(guān)于默認的緩存過期時間</summary>
Laravel Cache 沒有緩存的默認過期時間
Cache::put 方法的第三個參數(shù) ttl,不傳時為永久緩存,為 0 或負數(shù)時表示移除該緩存(等同于 forget)
</details>
<details>
<summary>Cache::flush 清楚的范圍</summary>
會清空該存儲器下的所有數(shù)據(jù),而非指定的 prefix 下的,所以當緩存共享,通過 prefix 區(qū)分時,需要謹慎調(diào)用該方法
</details>