Laravel - 是否可以通过标签从缓存中获取所有键?
Laravel - is it possible to get all keys from Cache by tag?
我有这个代码:
\Cache::tags(['test'])->put('a', 1);
\Cache::tags(['test'])->put('b', 2);
现在我想获取存储在 'test' 标签缓存中的所有键,像这样:
print_r(\Cache::tags(['test'])->getAllKeys());
使用此输出:
a
b
有什么想法吗?
在撰写本文时,Laravel 的缓存系统无法做到这一点。
Laravel 的缓存存储合约可以在 https://laravel.com/api/5.6/Illuminate/Contracts/Cache/Store.html
找到
对于缓存实现,从缓存中检索项目的唯一约定方法是 get() 和 many(),这两种方法都需要您指定要检索的项目的确切键。
某些存储,如 memcached,扩展了 TaggableStore,但它只有一种标记项目的方法。
这并不是说您不能独立于缓存方法查询您的 memcached,或者使用其他方法编写您自己的 Store 实现。
我有这个代码:
\Cache::tags(['test'])->put('a', 1);
\Cache::tags(['test'])->put('b', 2);
现在我想获取存储在 'test' 标签缓存中的所有键,像这样:
print_r(\Cache::tags(['test'])->getAllKeys());
使用此输出:
a
b
有什么想法吗?
在撰写本文时,Laravel 的缓存系统无法做到这一点。
Laravel 的缓存存储合约可以在 https://laravel.com/api/5.6/Illuminate/Contracts/Cache/Store.html
找到对于缓存实现,从缓存中检索项目的唯一约定方法是 get() 和 many(),这两种方法都需要您指定要检索的项目的确切键。
某些存储,如 memcached,扩展了 TaggableStore,但它只有一种标记项目的方法。
这并不是说您不能独立于缓存方法查询您的 memcached,或者使用其他方法编写您自己的 Store 实现。