Laravel redis/memcached cache tags logic



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

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(泰勒(选择这条路是有原因的,可能是性能和东西,但我不确定。

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

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

最新更新