【问题标题】:Laravel redis/memcached cache tags logicLaravel redis/memcached 缓存标签逻辑
【发布时间】:2018-09-02 01:52:15
【问题描述】:

找到以下包,它自动点击我,使用标签。

https://github.com/swayok/alternative-laravel-cache


尽管在标记系统的其他任何地方,这是默认行为, 在 Laravel 中,默认情况下是不同的(使用 Memcached/Redis 时)。

例如:

Cache::tags(['tag1', 'tag2'])->get('tag-test1');
Cache::tags(['tag2', 'tag3'])->get('tag-test1');
Cache::tags(['tag2', 'tag4'])->get('tag-test1');

Cache::tags(['tag2'])->flush();

希望所有缓存都被清除,因为它包含相同的标签, 但在 Laravel 中它根本不会命中缓存,相反,您需要再编写 3 行代码来使这些相同的缓存失效。

这是为什么呢? 我的意思是,Laravel(Taylor)选择这条路是有原因的,可能是性能和东西,但我不确定。

我想得到一个简单/准确的解释。谢谢。

【问题讨论】:

    标签: php caching redis tags laravel-5.5


    【解决方案1】:

    https://github.com/swayok/alternative-laravel-cache 确实是我的预期行为。例如,当构建一个包含三个产品、一个类别的页面时,它将使用这三个产品和类别进行标记。如果任何产品发生更改,则需要刷新缓存。在 Laravel 中,我需要知道所有三种产品和类别才能刷新,这是不可能的。不明白 Laravel 为什么采用这种方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-28
      相关资源
      最近更新 更多