vinxs/laravel-memory-cache

基于内存的简单缓存系统,用于Laravel Eloquent。主要目标是防止对数据库的无效调用。

1.0-beta3 2018-09-12 17:32 UTC

This package is not auto-updated.

Last update: 2024-09-28 00:07:29 UTC


README

该包的主要目标是防止对数据库的无用调用,这些调用可以轻松地保存在内存中。

特性SimpleMemoryCached会监视从数据库中创建的新模型实例,并将它们保存在内存中的缓存存储中。如果您使用find方法请求一个模型及其主键,它将先在存储中检查,然后再请求数据库。

我知道如果正确访问模型实例,这将是无用的,但它可以帮助小型项目的优化。

\App\CachedModel::where('id', '<=', 50)->get();
for ($i=0; $i < 200; $i++) {
    \App\CachedModel::find(1);
}
// Only one request will be made :
// SELECT * FROM `cached_models` WHERE `id` <= 50

安装

使用composer要求此包。请谨慎使用,它尚未准备好投入生产。

composer require vinks/laravel-memory-cache

用法

您只需将一个特性添加到您的模型中。

class VeryOftenLoadItem extends Model
{
    use \Vinks\MemoryCaching\SimpleMemoryCached;

    // Additionnally, you can change the maximum number of items will be kept for a model. Default: 50.
    const MEMORY_CACHE_LIMIT = 50;
}

贡献

  1. 分叉它!
  2. 创建您的功能分支:git checkout -b my-new-feature
  3. 提交您的更改:git commit -am '添加一些特性'
  4. 推送到分支:git push origin my-new-feature
  5. 提交一个pull请求 :D

历史

版本1.0 (2018-09-03):基于主键的内存缓存的第一种实现。

致谢

主要开发者 - Vincent Demonchy (@vinksyunit)

许可证

MIT许可证(MIT)

版权所有(c)2018 Vincent Demonchy

特此授予任何人,免费获得本软件及其相关文档副本(“软件”),在不受限制的情况下处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许向软件提供副本的个人这样做,前提是满足以下条件

上述版权声明和本许可声明应包含在所有副本或实质性部分中。

软件按“原样”提供,不受任何保证,明示或暗示,包括但不限于适销性、特定目的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论该索赔、损害或其他责任是因合同、侵权或其他原因引起的,是否与软件或软件的使用或其他交易有关。