我有以下代码:
\Cache::tags(['test'])->put('a', 1);
\Cache::tags(['test'])->put('b', 2);
现在我想获取所有存储在'test'标签中的缓存中的密钥,像这样:
print_r(\Cache::tags(['test'])->getAllKeys());
具有以下输出:
a
b
有什么主意吗?
答案 0 :(得分:1)
在撰写本文时,这是无法通过Laravel的Cache系统实现的。
Laravel的缓存存储合同可在https://laravel.com/api/5.6/Illuminate/Contracts/Cache/Store.html
找到对于缓存实现,从缓存中检索项目的唯一约定方法是get()和many(),这两种方法都要求您指定要检索的项目的确切键。
某些商店(如memcached)扩展了TaggableStore,但这仅是一种标记商品的方法。
这并不是说您无法独立于缓存方法来查询memcached,或者无法使用其他方法编写自己的Store实现。