代码之家  ›  专栏  ›  技术社区  ›  fico7489

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

  •  0
  • fico7489  · 技术社区  · 6 年前

    我有这个代码:

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

    现在,我要获取缓存中存储在“test”标记中的所有密钥,如下所示:

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

    使用此输出:

    a
    b
    

    知道吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Devon Bessemer    6 年前

    写这篇文章时,通过Laravel的缓存系统是不可能的。

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

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

    某些存储(如memcached)扩展了taggableStore,但这只有一种方法来标记项。

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