Laravel 的 ORM 缓存包

祝灼光
2023-12-01

Laravel 的 ORM 缓存包

LaraCache是一个基于 ORM 的 Laravel 包,用于基于模型查询创建、更新和管理缓存项。使用此包,您可以缓存在整个应用程序中大量使用的查询。

use Mostafaznv\LaraCache\Traits\LaraCache;
 
class Article extends Model
{
    use LaraCache;
 
    public static function cacheEntities(): array
    {
        return [
            CacheEntity::make('list.forever')
                ->cache(function() {
                    return Article::query()->latest()->get();
                }),
 
            CacheEntity::make('latest')
                ->validForRestOfDay()
                ->cache(function() {
                    return Article::query()->latest()->first();
                })
        ];
    }
}

使用该cacheEntities方法定义缓存查询,Laracache 将负责其余的工作。要使用缓存查询,您将调用模型,如下例所示:

use Mostafaznv\LaraCache\Facades\LaraCache;
 
 
$cache = Article::cache()->get('latest');
// or
$cache = LaraCache::retrieve(Article::class, 'latest');

使用此软件包,您可以使用以下功能控制缓存:

  • 启用/禁用缓存
  • 手动更新缓存
  • 手动更新所有缓存实体
  • 删除缓存
  • CacheEntity使用流利的方法或ttl()方法控制持续时间

我认为以下手动缓存更新方法很简洁,可以即时刷新缓存:

 

Article::cache()->update('latest');
// or
LaraCache::update(Article::class, 'latest');

你可以了解这个包,获取完整的安装说明,并在 GitHub 上查看源代码。

 类似资料: