Laravel-是否可以通过标签从缓存中获取所有密钥?

时间:2018-07-19 13:41:51

标签: php laravel laravel-5.2

我有以下代码:

\Cache::tags(['test'])->put('a', 1);
\Cache::tags(['test'])->put('b', 2);

现在我想获取所有存储在'test'标签中的缓存中的密钥,像这样:

print_r(\Cache::tags(['test'])->getAllKeys());

具有以下输出:

a
b

有什么主意吗?

1 个答案:

答案 0 :(得分:1)

在撰写本文时,这是无法通过Laravel的Cache系统实现的。

Laravel的缓存存储合同可在https://laravel.com/api/5.6/Illuminate/Contracts/Cache/Store.html

找到

对于缓存实现,从缓存中检索项目的唯一约定方法是get()和many(),这两种方法都要求您指定要检索的项目的确切键。

某些商店(如memcached)扩展了TaggableStore,但这仅是一种标记商品的方法。

这并不是说您无法独立于缓存方法来查询memcached,或者无法使用其他方法编写自己的Store实现。